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,红鱼儿的博客)的更多相关文章

  1. delphi 10.1 berlin最新的开发框架:咏南中间件+咏南开发框架,购买后提供全部的源码

    咏南中间件+咏南开发框架支持最新的delphi 10.1(berlin),老用户提供免费升级. 购买提供:中间件源码 附带福利(赠送): CS开发框架源码BS开发框架源码移动APP源码中间件集群源码二 ...

  2. Delphi 10.1 Berlin UTF8String Test

    Delphi 10.1 Berlin UTF8String Test procedure TForm1.Button1Click(Sender: TObject); var s: UTF8String ...

  3. Delphi 10.1 Berlin 官方未列之修正

    Delphi 10.1 Berlin 官方修正列表: Bug fix list for RAD Studio 10.1 Berlin Delphi 10.1 Berlin 官方未列之修正: 修正 iO ...

  4. 咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1

    咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1 购买提供:中间件源码,价格十分优惠!有意者请向本人索取演示程序! 附带福利(赠送): CS开发框架源码BS开发 ...

  5. 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 ...

  6. 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 ...

  7. 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 ...

  8. delphi 10.1 Berlin 中使用自带的 Base64 编码

    delphi 10.1 berlin版本中,有好几个 base64 编码的单元可以使用,例如 Indy, MessageDigest_5,还有 CnBase64,我现在使用自带的 System.Net ...

  9. 咏南中间件+开发框架支持最新的DELPHI 10.2 TOKYO

    咏南中间件+开发框架支持最新的DELPHI 10.2 TOKYO 价格十分优惠.有意者请向本人索取演示程序! 你只需花一套中间件的价格,就可获得:中间件,CS开发框架一套(赠送),BS开发框架一套(赠 ...

随机推荐

  1. JSON 数组格式

    JSON 数据格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人 ...

  2. vim插件管理之Vundle

    Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.正是由于其可定制的特性, 许许多多的Vim插件便诞生了.管理这些插件又成为我们最为头疼的问题,最近无 ...

  3. r语言之条件、循环语句

    if条件语句:if (conditon) {expr1} else {expr2} > x<-1> if(x==1)+ {x<-"x=1"}else+ {x ...

  4. java-输出格式

    https://docs.oracle.com/javase/tutorial/java/data/numberformat.html Formatting Numeric Print Output ...

  5. spring jdbc 笔记3

    spring JDBC 加入对commons-dbcp  spring-jdbc  spring-tx的依赖 1.数据源的配置 获取数据源在spring中的Bean管理默认已经是单例模式 关闭数据源d ...

  6. android 中的 ViewPager+ Fragment

    android的Viewpager 的各种经常的用法,朋友问我要过,所以就稍微总结一下, ViewPager + Fragment 经常用到  代码是从   actionbarsherlock 中提取 ...

  7. Js基础操作

    var a="zhangsan"; document.write(a+":I love JavaScrip"); a="lisi"; doc ...

  8. ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。

    应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内.难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟 ...

  9. 10994 - Simple Addition(规律)

    Problem E Simple Addition Input: Standard Input Output: Standard Output Let’s define a simple recurs ...

  10. 树莓派变成一个Web服务器: nginx + php + sqlite

    将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...