2.9 网络
2.9.1 发送HTTP请求
Egret提供了基本的HTTP请求功能。下面通过实例代码来介绍基本的使用方法。
创建一个称为HTTPConnection的新项目,删除src文件夹内的所有文件,创建一个称为Main.ts的类文件,并对其做出如下修改,参见二维码2-32:
二维码2-32
运行调试播放器观看结果,会在调试窗口输出类似如图2-54所示的内容:
图2-54 程序控制台输出结果
系统配置以及安装软件的不同,输出会有所不同。
在代码的第8行,创建了一个egret.HttpRequest对象——request,这个类在Egret里是专门用来发送HTTP请求以及接收响应的。
在代码的第9行,将responseType属性指定为egret.HttpResponseType.TEXT,这样接收到的响应就是JSON 字符串,如果是egret.HttpResponseType.ARRAY_BUFFER,那么接收到的就是字节数组。
在代码的第11行,通过open方法指定了连接地址以及连接方式,但是还没有发出请求。
在代码的第13行,通过setRequestHeader方法设置了请求的消息头部。
在代码的第15行,通过send方法发送请求。
在代码的第16行,request对象注册了egret.Event.COMPLETE事件的响应——onGetComplete方法,当请求成功并返回响应的时候,就会调用这个方法。
在代码的第18行,request对象注册了egret.IOErrorEvent.IO_ERROR事件的响应——onGetIOError方法,当出现错误的时候就会调用这个方法。
在代码的第20行,request对象注册了egret.ProgressEvent.PROGRESS事件的响应——onGetProgress方法,当请求处于过程阶段的时候,就会触发这个事件。
在代码第19行,打印出了请求所对应的响应。
以上示例是针对 Get 请求的,对于 Post 请求,只需把第10 行代码中的连接地址改为http://httpbin.org/post,把连接方式改为egret.HttpMethod.POST即可。
2.9.2 发送带参数的请求
对于Get请求方式,将参数加在url后面,如下所示:
对于Post请求方式,就不能将参数加在url后面了,而是在send方法里指定参数,使用方式如下所示: