Как отправить данные HTTP и получить ответ с помощью Synapse (Delphi) - PullRequest
5 голосов
/ 09 июня 2011

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

1 Ответ

8 голосов
/ 09 июня 2011

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

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

URL - целевой URL
URLData - параметры URL;должен быть закодирован, например, с использованием EncodeURLElement function
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;
...