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=1739118421-kOWhyla3Cb7yUf6t96hScc9J4GDDJ5oe-0-83e433a6629e928ceaf599131f4bc98f)
二维码2-32
运行调试播放器观看结果,会在调试窗口输出类似如图2-54所示的内容:
![](https://epubservercos.yuewen.com/190630/23446275309889706/epubprivate/OEBPS/Images/57_03.jpg?sign=1739118421-FnquOu26a6UfiuvFzZKB5M1wWnMlfUms-0-52949d6df6be31535eba713256231703)
图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=1739118421-xSdjccBdwW1G6ze0Wp0t6ai6PJ5Xu9LQ-0-57ea212577e1f817c82dfcb715c8c13a)
对于Post请求方式,就不能将参数加在url后面了,而是在send方法里指定参数,使用方式如下所示:
![](https://epubservercos.yuewen.com/190630/23446275309889706/epubprivate/OEBPS/Images/58_02.jpg?sign=1739118421-GG2Yfpb5TXHSaYXv549bcy3rixh34B6n-0-caaac53a71bf9d2b5336b70b544ebfce)