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

Tre*_*tBG 5 delphi http http-post request apache-synapse

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

小智 8

尝试使用HttpPostURL函数.

function HttpPostURL(const URL, URLData: string; const Data: TStream): Boolean;
Run Code Online (Sandbox Code Playgroud)

URL- 目标网址
URLData- 网址参数; 必须编码,例如使用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;
Run Code Online (Sandbox Code Playgroud)