How to use HTTP Client API in Delphi

13,731

Neither one of your examples is technically correct. Your URLs are incomplete, and you are mismanaging your variable names.

Try this instead:

Indy:

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;
Share:
13,731
cyberdude
Author by

cyberdude

Updated on August 03, 2022

Comments

  • cyberdude
    cyberdude almost 2 years

    How to use NetHTTPClient instead of IdHTTP?

    My NetHTTPClient code:

    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;
    

    My IdHTTP code:

    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.