码迷,mamicode.com
首页 > Windows程序 > 详细

TNetHttpClient支持异步访问(Delphi 10.1 Berlin,红鱼儿的博客)

时间:2016-05-10 18:40:29      阅读:1473      评论:0      收藏:0      [点我收藏+]

标签:

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,红鱼儿的博客)

标签:

原文地址:http://www.cnblogs.com/findumars/p/5478551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!