![游戏开发实战宝典](https://wfqqreader-1252317822.image.myqcloud.com/cover/212/44175212/b_44175212.jpg)
2.9 网络
2.9.1 发送HTTP请求
Egret提供了基本的HTTP请求功能。下面通过实例代码来介绍基本的使用方法。
创建一个称为HTTPConnection的新项目,删除src文件夹内的所有文件,创建一个称为Main.ts的类文件,并对其做出如下修改,参见二维码2-32:
![](https://epubservercos.yuewen.com/190630/23446275309889706/epubprivate/OEBPS/Images/57_02.jpg?sign=1738851036-e4ZJrqVS4fQFbJf1Vk6XGpgAMfU6i2ef-0-a320e84fb00a85fb158a597fc2009ca8)
二维码2-32
运行调试播放器观看结果,会在调试窗口输出类似如图2-54所示的内容:
![](https://epubservercos.yuewen.com/190630/23446275309889706/epubprivate/OEBPS/Images/57_03.jpg?sign=1738851036-pHGyfNpdRkYNjYnMgYJVyzxHrdCSveaR-0-1aa3ec25b67c04256411370ca006d39e)
图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后面,如下所示:
![](https://epubservercos.yuewen.com/190630/23446275309889706/epubprivate/OEBPS/Images/58_01.jpg?sign=1738851036-JPBCx9gaye3vWR7utqYfNmpvoJ2T5g2u-0-8d9d7f63c870254877a4f722bce66d0d)
对于Post请求方式,就不能将参数加在url后面了,而是在send方法里指定参数,使用方式如下所示:
![](https://epubservercos.yuewen.com/190630/23446275309889706/epubprivate/OEBPS/Images/58_02.jpg?sign=1738851036-mUR4aDDE6jKxVpvO91WWFQVDwAmusGhG-0-3e574fef3cbb0dd399dca30fa818ec2a)