问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

delphi中使用HTTP控件,怎么使用POST的异步方式

提问网友 发布时间:2022-04-22 07:37
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2022-06-17 20:44

最近一直在使用IDHTTP,下面是一些关于 GET、POST 请求基本使用方法的代码

一、GET 请求

1 procere GetDemo; 2 var 3   IdHttp : TIdHTTP; 4   Url : string;//请求地址 5   ResponseStream : TStringStream; //返回信息 6   ResponseStr : string; 7 begin 8   //创建IDHTTP控件 9   IdHttp := TIdHTTP.Create(nil);10   //TStringStream对象用于保存响应信息11   ResponseStream := TStringStream.Create('');12   try13     //请求地址14     Url := 'http://dict.you.com/';15     try16       IdHttp.Get(Url,ResponseStream);17     except18       on e : Exception do19       begin20         ShowMessage(e.Message);21       end;22     end;23     //获取网页返回的信息24     ResponseStr := ResponseStream.DataString;25     //网页中的存在中文时,需要进行UTF8解码26     ResponseStr := UTF8Decode(ResponseStr);27   finally28     IdHttp.Free;29     ResponseStream.Free;30   end;  
31 end;

如果Get需要添加请求参数,则直接在地址后添加,各参数间用&连接

如:http://dict.you.com?param1=1&param2=2

二、Post 请求

1 procere PostDemo; 2 var 3   IdHttp : TIdHTTP; 4   Url : string;//请求地址 5   ResponseStream : TStringStream; //返回信息 6   ResponseStr : string; 7  8   RequestList : TStringList;     //请求信息 9   RequestStream : TStringStream;10 begin11   //创建IDHTTP控件12   IdHttp := TIdHTTP.Create(nil);13   //TStringStream对象用于保存响应信息14   ResponseStream := TStringStream.Create('');15 16   RequestStream := TStringStream.Create('');17   RequestList := TStringList.Create;18   try19     Url := 'http://f.you.com/?path=fanyi&vendor=fanyiinput';20     try21       //以列表的方式提交参数22       RequestList.Add('text=love');23       IdHttp.Post(Url,RequestList,ResponseStream);24 25       //以流的方式提交参数26       RequestStream.WriteString('text=love');27       IdHttp.Post(Url,RequestStream,ResponseStream);28     except29       on e : Exception do30       begin31         ShowMessage(e.Message);32       end;33     end;34     //获取网页返回的信息35     ResponseStr := ResponseStream.DataString;36     //网页中的存在中文时,需要进行UTF8解码37     ResponseStr := UTF8Decode(ResponseStr);38   finally39     IdHttp.Free;40     RequestList.Free;41     RequestStream.Free;42     ResponseStream.Free;43   end;44 end;

Post请求在网页中多使用List形式提交参数。

不过在一些API中规定了POST的请求格式为 JSON 格式或 XML,这是需要注意发起请求前需要先设置 ContentType 属性,使用Stream方式提交

已上面代码为例:

提交 JSON 格式:IdHttp.Request.ContentType :='application/json';

提交 XML 格式: IdHttp.Request.ContentType :='text/xml';

如未按要求格式提交,一般会返回 HTTP 1.1 / 415

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

有的近义词是什么? 50元红包求c# winform 接受post数据的demo 打过除草剂的土地要种菜,怎么处理一下? 有反也有近义词? 新人求助afnetworking post请求的demo 打除草剂隔年长出来野菜可以吃吗? “有”字的近义词是什么?谢谢。 吃了打除草剂的野菜会有什么作用吗? 有的近义词是什么? 打了山东科技玉镰除草剂后,长的野菜人能吃吗 菜地里打了除草剂草发黄了,菜能吃了吗? 打过除草剂的地第二年张出的野菜能吃吗 菜上打了除草剂怎么处理? 地里的荠菜打除草剂、还能吃么 如何查收他人发给自己的电子邮件 打过除草剂的野菜能吃吗 我在自家院子里打了除草剂,别人因不知道打了药,... 打了除草剂的野菜弄来洗净晒干能吃吗? 怎样打开别人的电子邮件 有人误吃了打了除草剂的野菜,农民用负责吗? 有字近义词是什么 谁知道‘有’ 的近义词?高分悬赏 net有没有一个纯用http中get,post请求做的一个demo 六龄齿会换吗,六龄齿什么时候长,六龄牙有几颗在 还有近义词吗? javascript如何获取post返回的数据? 什么是六龄齿 有的.有的.的近义词 jQuery 实现5分钟无点击或者键盘事件,自动post发送... 六龄牙坏了怎么办会换吗 有的的近义词是什么 圆弧路径运动用什么作为动力最好 六龄齿会脱落吗? 花茶包装设计应考虑哪些因素 还有近义词的词语 六龄齿什么时候长? 如何查看jquery post返回值 有( )有( )带有近义词的 儿童的“六龄齿”是否真的不用换牙?六龄齿是恒牙吗? 我想看POST的所有内容应该怎么写
Top