idHTTP+SSL - авторизация, сохранение сессии и ряд

 
0
 
Delphi, Kylix & Pascal
ava
oswxp | 11.04.2013, 11:25
Как после авторизации (с SSL) отправить второй post запрос?
Возможно проблема с сессией? Куки?
В общем авторизовываюсь, получаю респонз,который нужен, а со 2го запроса ничего не происходит. Если я через блокноту указываю эти ссылки с параметрами:
1. авторизоваться - выполнил.
2. Послать запрос на выполнение некоторого действия (звонок) , возвращает 201-OK, но если из блокнота - звонит, а из программы POST запросом ничего ен происходит.
Ребята, что я делаю не так?

пример:


procedure TForm1.FormCreate(Sender: TObject);
var
  Response: TStringStream;
  I: integer;
  str: string;
begin
  try
    http.AllowCookies := true;
    //http.HTTPOptions := [hoInProcessAuth,hoForceEncodeParams];
    http.Response.KeepAlive := true;
    http.Request.AcceptLanguage := 'ru-RU';
    http.Request.Accept := '*/*';
    http.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; MRSPUTNIK 2, 4, 0, 463; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.1; .NET4.0C; .NET4.0E; BRI/2)';
    http.Request.Connection := 'Keep-Alive';
    http.Request.Referer := ('https://server:8881/webdialer/Webdialer');
    HTTPData := TStringList.Create;
    Response := TStringStream.Create();
    HTTPData.Add('destination=[color=blue]number[/color]');
    HTTPData.Add('uid=admin');
    HTTPData.Add('pwd=pass');
    HTTPData.Add('loc=ru_RU');
    HTTPData.Add('cmd=doAuth');
    //HTTPData.Add('cmd=doMakeCall');
    http.Post('https://server:8881/webdialer/Webdialer',HTTPData,Response);
    Response.SaveToFile('1.html');                                                                                  <--- ЗДЕСЬ Я ПОЛУЧАЮ СОДЕРЖИМОЕ ЗАПРОСА POST / idHTTP + SSL.[I][color=red][/color][/I]
    Label3.Caption := http.ResponseText;}
    //i:=pos('jsessionid=',Response.DataString);
    HTTPData.Clear;
    HTTPData.Add('destination=[color=blue]number[/color]');
    HTTPData.Add('cmd=doMakeCall');
    HTTPData.Add('noConfDialog=true');
    //HTTPData.Add('jsessionid='+copy(Response.DataString,i+11,32));
    http.Post('https://server:8881/webdialer/Webdialer',HTTPData,Response);             [I][color=red][/color]<--- По идеи после этого запроса должен последовать звонок, уже после авторизации, в блокноте так и происходит, выполнил в браузере 1й запрос с параметром авторизации и потом вызов, после вызова запрос на завершение звонка[/I]

    Label3.Caption := Label3.Caption + (http.ResponseText);
    Memo1.Text := Response.DataString;                                                                          
  finally
    begin
      Response.Free;

    end;
  end;
end;
 

где NUMBER, некоторый номер, не суть важна (работает, если руками вбивать в адресную строку в браузере).
Comments (2)
ava
oswxp | 14.04.2013, 11:36 #
Неужели никто не может помочь, направить?
ava
Akella | 15.04.2013, 09:41 #
А ты проверь отладчиком свойство CoockieManager. Может оно пустое?
А также проверь, что в куках.
А также проверь с помощью дополнения httpfox (для Firefox), что передаёт и получает браузер.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
ava  Akella   oswxp
advanced
Submit