Как отправить данные HTTP и получить ответ с помощью Synapse (Delphi)

Я думаю, заголовок был достаточно ясен. Я хочу знать, как отправить запрос HTTP POST с параметрами/аргументами и получить ответ HTML - с помощью библиотеки Synapse для Delphi.


person TreantBG    schedule 09.06.2011    source источник


Ответы (1)


Попробуйте использовать функцию HttpPostURL.

function HttpPostURL(const URL, URLData: string; const Data: TStream): Boolean;

URL - целевой URL
URLData - параметры URL; должен быть закодирован, например. используя функцию EncodeURLElement
Data - целевой поток, в котором будет храниться

В следующем примере используется тестовый POST-сервер, куда отправляются два параметра POST. Обратите внимание на использование функции EncodeURLElement для кодирования данных параметров. Если POST прошел успешно, ответ сервера сохраняется в файле.

uses HTTPSend, Synacode;

procedure TForm1.Button1Click(Sender: TObject);
var URL: string;
    Params: string;
    Response: TMemoryStream;

begin
  Response := TMemoryStream.Create;

  try
    URL := 'http://posttestserver.com/post.php?dump&html';

    Params := 'parameter1=' + EncodeURLElement('data1') + '&' +
              'parameter2=' + EncodeURLElement('data2');

    if HttpPostURL(URL, Params, Response) then
      Response.SaveToFile('c:\response.txt');

  finally
    Response.Free;
  end;
end;
person Community    schedule 09.06.2011