Delphi程序向HTTP请求

Bha*_* S. -1 delphi pascal httprequest

我想使用Delphi程序进行HTTP请求.

我使用下面的代码,但我得到了一个名为"Undeclared identifier:TIdHTTP"的错误

我是Delphi的新手.

我请你帮帮我

function PostExample: string;
var
  lHTTP: TIdHTTP;
  lParamList: TStringList;
begin
  lParamList := TStringList.Create;
  lParamList.Add('id=1');

  lHTTP := TIdHTTP.Create;
  try
    Result := TIdHTTP.Post('http://192.168.1.247:8001/test/test_api/', lParamList);
  finally
    lHTTP.Free;
    lParamList.Free;
  end;
end;

Procedure http;
begin
PostExample();
end;
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 5

TIdHTTPIndy的一个组件,它预先安装在IDE中.

如果要创建可视GUI项目,只需TIdHTTP在设计时将组件拖放到Form/Frame/DataModule上即可.

否则,在代码中只使用它而已,你需要将添加IdHTTP单元到您的uses条款,和你的项目需要,要求IndySystem#,IndyCore#以及IndyProtocols#包装,其中#是软件包版本号为德尔福的您的特定版本.

此外,您的代码中还有一些小错误.Post()不是类的static方法TIdHTTP,所以你需要使用你的lHTTP变量来调用它.此外,lParamList.Free应该在自己的try..finally块.

uses
  ..., IdHTTP, Dialogs;

function PostExample: string;
var 
  lHTTP: TIdHTTP;
  lParamList: TStringList;
begin
  lParamList := TStringList.Create;
  try
    lParamList.Add('id=1');
    lHTTP := TIdHTTP.Create;
    try
      Result := lHTTP.Post('http://192.168.1.247:8001/test/test_api/', lParamList);
    finally
      lHTTP.Free;
    end;
  finally
    lParamList.Free;
  end;
end;

procedure http;
begin
  ShowMessage(PostExample());
end;
Run Code Online (Sandbox Code Playgroud)