Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何在TIdHTTP中指定自定义HTTP方法?_Delphi_Postman_Idhttp - Fatal编程技术网

Delphi 如何在TIdHTTP中指定自定义HTTP方法?

Delphi 如何在TIdHTTP中指定自定义HTTP方法?,delphi,postman,idhttp,Delphi,Postman,Idhttp,我需要通过指定一个自定义HTTP方法来使用TIDHTTP进行调用 在postman中,我通过在下拉列表中键入方法名称来实现这一点,在下拉列表中我可以选择GET/POST/PUT/…: 如何在TIdHttp中实现这一点?在本例中,HTTP方法不是GET而是GO(GO当然是自定义的,而不是标准的) 谢谢。TIdHTTP有一个公共的Request.Method属性,您可能会尝试使用它,但是它不起作用,因为TIdCustomHTTP.DoRequest()方法(完成所有实际工作)会用它自己的AMeth

我需要通过指定一个自定义HTTP方法来使用TIDHTTP进行调用

在postman中,我通过在下拉列表中键入方法名称来实现这一点,在下拉列表中我可以选择GET/POST/PUT/…:

如何在TIdHttp中实现这一点?在本例中,HTTP方法不是GET而是GO(GO当然是自定义的,而不是标准的)


谢谢。

TIdHTTP
有一个公共的
Request.Method
属性,您可能会尝试使用它,但是它不起作用,因为
TIdCustomHTTP.DoRequest()
方法(完成所有实际工作)会用它自己的
AMethod
参数覆盖该属性。因此,您必须直接调用
DoRequest()

procedure-DoRequest(const-method:TIdHTTPMethod;AURL:string;
a来源,AResponseContent:TStream;aignoreplies:Int16数组);事实上的
tidhttmpethod
只是一个
字符串
,因此您可以传入任何想要的方法名称

但是,
TIdCustomHTTP
1中将
DoRequest()
声明为
protected
,因此必须使用后代/访问器类才能访问它,例如:

类型
TIdHTTPAccess=class(TIdHTTP)
结束;
程序TForm1.按钮1单击(发送方:TObject);
开始
TIdHTTPAccess(IdHTTP1).DoRequest('GO','http://127.0.0.1:1308/...“,需要……”;
结束;
或者,您可以使用
类帮助程序
(仅限Delphi 2006+),例如:

类型
TIdHTTPHelper=TIdHTTP的类帮助程序
过程Go(AURL:字符串;需要参数…);
结束;
过程TIdHTTPHelper.Go(AURL:String;ParamsAsNeeded…);
开始
DoRequest('GO',AURL,PARAMSASENDED…);
结束;
程序TForm1.按钮1单击(发送方:TObject);
开始
IdHTTP1.Go('http://127.0.0.1:1308/...“,需要……”;
结束;
1:Indy的问题跟踪程序中有一个未解决的问题: