游戏开发实战宝典
上QQ阅读APP看书,第一时间看更新

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方法里指定参数,使用方式如下所示: