【Cocos2dx-3.x】通信协议之HTTP通信协议篇

来源:互联网 发布:淘宝体验中心 编辑:程序博客网 时间:2024/06/05 11:18

好记性不如烂笔头

前言

Cocos2d-x提供了3种网络连接通信方式,分别为:HTTT、Socket、WebSocket等;本小结主要以Http协议为主:2.x和3.x的通信协议没有太大的变化,HTTP中有3种数据提交方式,分别为: GET、POST、PUT; 这里以HTTP中常用的GET、POST作为代码示例,GET和POST区别在于,GET适用于从服务器获取小的数据;而POST则适用于向服务器提交比较多的数据,用法如下:


预备工作 

首先创建2个文字按钮,分别为GET、POSTS。点击按钮GET,调用createGetHttp()函数;点击按钮POST,调用createPostHttp()函数。接下来的操作就在这两个函数里进行(按钮创建这里就不多说了)

HTTP 之 GET方式通信

首先在使用HTTp协议的类中要把HttpClient.h、HttpRequest.h、HttpResponse.h这三个头文件包含进来,并且声明好命名空间:using namespace cocos2d::network;

在方法createGetHttp()中:
1. 生成HttpRequest对象

2 . 设置请求链接

 3. 设置请求类型

4. 设置请求完成后的回调函数

5. 设置请求tag值

6. 生成HttpClient对象,并且发送请求

7. 释放 HttpRequest对象

请求完整代码:

到这里我们的请求已经发出,接下来要对请求返回的数据进行处理,上面已经设置好了请求响应函数,下面是对返回的一些处理:
函数getHttp_handshakeResponse(HttpClient *sender, HttpResponse *response)

1. 通过参数response得到请求tag值,如果能够成功获取则请求发送成功。

2.  通过getResponseCode()函数来获取请求状态码,状态码为200时,则发送请求成功

3. 也可以根据 isSucceed()这个函数来判断是否发送请求成功,这个函数返回bool类型

 4. 确认请求发送成功后,利用getResponseData()函数来得到请求返回的数据,得到的数据,根据自己项目所需进行响应处理即可,这里只做了输出处理

到这里GET请求与接收就完成了,下面是完整代码

HTTP 之 POST方式通信

POST 方式与GET方式通信请求过程几乎相近,只要把请求方式修改下即可:
在方法createPostHttp()中:

以上就是POST的发送请求,和GET很像,这里我们的post请求已经发出,接下来要对请求返回的数据进行处理,上面已经设置好了请求响应函数,下面是对返回的一些处理:
函数PostHttp_handshakeResponse(HttpClient *sender, HttpResponse *response)

总结

到这里本章节的学习就结束,想看项目运行效果的可以从我的gitHub上获取本节源码点击这里,Socket以及WebSocket网络通信方式分别会在下章节讲到!
更多文章请访问我的个人博客:http://www.sydev.cn

0 0
原创粉丝点击