如何使用Synapse发送HTTP数据并获得响应(Delphi)

时间:2011-06-09 10:29:13

标签: delphi http request http-post synapse

我认为标题很清楚。 我想知道如何使用参数/参数发送HTTP POST请求并接收HTML响应 - 使用Delphi的Synapse库。

1 个答案:

答案 0 :(得分:8)

尝试使用HttpPostURL功能。

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

URL - 目标网址
URLData - 网址参数;必须编码,例如使用EncodeURLElement功能
Data - 目标流,将存储响应

以下示例使用testing POST server发送两个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;