如何在 Delphi 中使用 HTTP 客户端 API

How to use HTTP Client API in Delphi

如何使用 NetHTTPClient 代替 IdHTTP?

我的 NetHTTPClient 代码:

var
 LHTTPClient: THTTPClient;
 P : TStrings;
 begin
   LHTTPClient := THTTPClient.Create;
   P := TStringList.Create;
   try
     Params.Add('test=' + Path);
     Memo1.Lines.Text := NetHTTPClient1.Post('www.server.com',   P).ContentAsString();
   finally
     LHTTPClient.Free;
  end;
end;

我的 IdHTTP 代码:

procedure TForm1.Start;
var
 lHTTP: TIdHTTP;
 P: TStringList;   
begin
  lHTTP := TIdHTTP.Create(nil);
  P := TStringList.Create;
  try
    Params.Add('test=' + Path);
  try
    Reply.Text := lHTTP.Post('www.server.com', P);

    if AnsiContainsStr(Reply.Text, 'good') then
      begin
        Memo1.Lines.Add(Path);
      end;     
  finally
  end;

end;
end.

你的例子在技术上都不正确。您的网址不完整,而且您对变量名称的管理不当。

试试这个:

印地:

procedure TForm1.Start;
var
  LHTTP: TIdHTTP;
  Params: TStringList;
begin
  LHTTP := TIdHTTP.Create;
  try
    Params := TStringList.Create;
    try
      Params.Add('test=' + Path);
      Memo1.Lines.Text := LHTTP.Post('http://www.server.com', Params);
    finally
      Params.Free;
    end;
  finally
    LHTTP.Free;
  end;
end.

NetHTTP:

procedure TForm1.Start;
var
  LHTTP: TNetHTTPClient;
  Params: TStringList;
begin
  LHTTP := TNetHTTPClient.Create(nil);
  try
    Params := TStringList.Create;
    try
      Params.Add('test=' + Path);
      Memo1.Lines.Text := LHTTP.Post('http://www.server.com', Params).ContentAsString;
    finally
      Params.Free;
    end;
  finally
    LHTTP.Free;
  end;
end;