TNetHttpClient支持异步访问(Delphi 10.1 Berlin,红鱼儿的博客)
Delphi 10.1进一步改进自Delphi 10带来的Http访问控件TNetHttpClient,支持异步访问,同时增加ConnectionTimeout及ResponseTimeout两个超时属性。你也许会问,这有什么?其他的语言早就有了,而我想到的确实别看这些常规的功能增加,他可以跨平台的啊,熟知Delphi跨平台的开发者一说就明白,这是跨win,osx,android,ios的,今年底还要linux.我又说多了,好象劝你也来用delphi似的。
我们看一下如何使用异步处理Http请求。
1.设置Asynchronous=ture,默认值是False.
2.发出http请求:
ss:=TStringStream;
NetHttpClient1.Get('http://www.baidu.com',ss);
这里,SS参数是任选的,可不填,如果填上,请求完成时,返回结果在SS中。
3.在NetHttpClient1的OnRequestCompleted事件接收结果:
这个事件是当请求完成触发,事件参数AResponse是返回的结果流。如果在发出请求加了接收返回流的参数,如上面SS,也可以用SS来当结果。
看帮助,Get方法返回一个接口对象,通过这个对象的ContentStream也可以处理返回结果。
总结上面,就是有三种方式来接收结果:
1.用Get的参数来接收
2.用Get的返回值接收
3.利用RequestCompleted事件参数来接收
为了知道请求何时完成,都要用到这个RequestCompleted事件,有朋友说,这样调用碎片化,不利于编码,如何利用现在常用的直接支持异步的写法,直接回调指定的方法。我认为将NetHttpClient封装到一个通用的过程中,支持回调函数就行了,类似下面这样,然后在这个方法中使用NetHttpClient对象执行aUrl,在完成事件中回调aCallBackMethod:
procedure ExecuteHttpRequest(aUrl:string;aCallBackMethod);
http://blog.sina.com.cn/s/blog_44fa172f0102w0ku.html
TNetHttpClient支持异步访问(Delphi 10.1 Berlin,红鱼儿的博客)的更多相关文章
- delphi 10.1 berlin最新的开发框架:咏南中间件+咏南开发框架,购买后提供全部的源码
咏南中间件+咏南开发框架支持最新的delphi 10.1(berlin),老用户提供免费升级. 购买提供:中间件源码 附带福利(赠送): CS开发框架源码BS开发框架源码移动APP源码中间件集群源码二 ...
- Delphi 10.1 Berlin UTF8String Test
Delphi 10.1 Berlin UTF8String Test procedure TForm1.Button1Click(Sender: TObject); var s: UTF8String ...
- Delphi 10.1 Berlin 官方未列之修正
Delphi 10.1 Berlin 官方修正列表: Bug fix list for RAD Studio 10.1 Berlin Delphi 10.1 Berlin 官方未列之修正: 修正 iO ...
- 咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1
咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1 购买提供:中间件源码,价格十分优惠!有意者请向本人索取演示程序! 附带福利(赠送): CS开发框架源码BS开发 ...
- Delphi 10.1 Berlin Starter Edition
Delphi 10.1 Berlin Starter Edition Embarcadero® Delphi 10.1 Berlin Starter is a great way to get sta ...
- Where is the ActiveX Project Type for Delphi 10.1 Berlin
n 10.1 Berlin the ActiveX project types are missing from the New Items Window under Delphi. They are ...
- BaaS with Kinvey and Delphi 10.1 Berlin
In this article I will show you how to connect yourdesktop and mobile applications to a mobile backe ...
- delphi 10.1 Berlin 中使用自带的 Base64 编码
delphi 10.1 berlin版本中,有好几个 base64 编码的单元可以使用,例如 Indy, MessageDigest_5,还有 CnBase64,我现在使用自带的 System.Net ...
- 咏南中间件+开发框架支持最新的DELPHI 10.2 TOKYO
咏南中间件+开发框架支持最新的DELPHI 10.2 TOKYO 价格十分优惠.有意者请向本人索取演示程序! 你只需花一套中间件的价格,就可获得:中间件,CS开发框架一套(赠送),BS开发框架一套(赠 ...
随机推荐
- http://riddle.arthurluk.net walkthrough
MSVFMyU4MCU4MWh0dHAlM0ElMkYlMkZyaWRkbGUuYXJ0aHVybHVrLm5ldCUyRnN0YWdlb25lLnBocCUwRCUwQTIlRTMlODAlODFo ...
- ZIOZIA_百度百科
ZIOZIA_百度百科 ZIOZIA
- Pagodas(等差数列)
Pagodas Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- Treasure Exploration(二分最大匹配+floyd)
Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 7455 Accepted: 3 ...
- cocos2d-x的A*寻路
如果你还不熟悉A*寻路,请先看下这篇文章http://blog.csdn.net/dssdss123/article/details/11494065 一.先介绍几个函数和结构: 1.virtual ...
- POJ 2104(K-th Number-区间第k大-主席树)
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 31790 Accepted: 9838 Cas ...
- git 使用过程(三、文件的添加 修改)
1.库中添加文件 在目录下新建一个文件 如 testfile.txt .输入命令:① git add testfile.txt ②git commit -m "这里是你提交的说明" ...
- 数据库 isnull()、nvl()、ifnull() 使用
SqlServer 插入字段值 为空 设置默认值 isnull(val_1,val_2) 当val_1为 null 的时候 返回 val_2的值 Oracle nvl(val_1,val_2) 当va ...
- hdu2629Identity Card
Problem Description Do you own an ID card?You must have a identity card number in your family's Hous ...
- Week6(10月14日)
Part I:提问 =========================== 1.什么是视图模型?2.我们在留言本中,加入了一个怎样的视图模型?如何处理它? Part II:Ch05 视图模型 === ...