Delphi 程序发出 HTTP 请求

问题描述 投票:0回答:1

我想使用 Delphi 发出 HTTP 请求。 我使用下面的代码,但出现错误

未声明的标识符:TIdHTTP

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;
delphi httprequest indy
1个回答
5
投票

TIdHTTP
Indy 的组件,预装在 IDE 中。

如果您正在制作可视化 GUI 项目,您只需在设计时将

TIdHTTP
组件拖放到您的 Form/Frame/DataModule 上。

否则,要仅在代码中使用它,您需要将

IdHTTP
单元添加到
uses
子句中,并且您的项目需要需要
IndySystem#
IndyCore#
IndyProtocols#
包,其中 #是您特定版本的 Delphi 的软件包版本号

此外,您的代码中存在一些小错误。

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;
© www.soinside.com 2019 - 2024. All rights reserved.