Cocos2d-x封装了3个类来处理HTTP请求:
HttpRequest,HttpClient和HttpResponse.
使用HttpRequest,HttpClient和HttpResponse这3个类进行Http进行请求时,需要遵循一定流程
请求过程:
1.创建HttpRequest的实例。
2.设置请求方式,Get、Post等。(千万不要以为只有get和post方式哦,这是一般新手以为的,只是其他请求方式我们平时用到的很少)
3.设置请求地址和发送的数据(如果没有发送的数据,可不设置发送数据)。
4.设置响应回调函数,在回调函数中处理获取的数据。
5.创建HttpClient实例,发送请求。
6.释放请求连接。
使用Cocos2d封装的HttpRequest设置请求信息
HttpRequest:
是一种数据类型,它提供了一些方法用来定义或获取HTTP请求的参数,
常用方法包括下面几种:
设置请求连接
void setUrl(const char * url);
设置请求类型
void setRequestType(Type type);
这里的Type是Cocos2d-x定义的一个枚举类型,包括5种类型。
源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
设置回调函数:
void setResponseCallback(Ref* pTarget,SEL_HttpResponse pSelector);
设置请求的数据,参数buffer是提交的数据,len是请求数据的长度(使用发送数据的实际长度):
void setRequestData(const char* buffer,unsigned int len);
头文件和命名空间:
1 2 |
|
完整的Request对象创建
1 2 3 4 5 6 7 8 |
|
使用Cocos2d封装的HttpClient发送请求
HttpClient:
用来控制请求相关的参数,比如发送请求,设置请求超时时间。
它使用单例模型。 这一模式的目的是使得类的一个对象成为系统中的唯一实例。
cocos2d中多处用到这一模型。
比如Director对象,创建Director::getInstance().获取的都是同一个对象,方便统一管理
又比如,音频处理对象: SimpleAudioEngine::getInstance();
常用方法
发送请求:
send(HttpRequest* request)
设置连接超时时间:
setTimeoutForConnect(int value)
1 2 |
|
1 2 3 4 5 |
|
使用Cocos2d封装的HttpResponse处理返回的结果
HttpResponse:
包含服务器返回的数据等信息。使用HttpResponse提供的方法可以获取这些数据。
常用方法:
std::vector
获取请求返回的数据 -返回的是一个char型的数组
getResponseState
获取服务器返回的状态,返回值是一个整数,200表示请求成功,400表示服务器错误,404表示服务器上找不到相应的文件。
issucced(),用来判断是否返回成功。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
完整源代码下载地址:
GITHUB源码下载地址:【点我进行下载】
本文章由[谙忆]编写, 所有权利保留。 欢迎转载,分享是进步的源泉。
转载请注明出处:http://chenhaoxiang.cn
本文源自【人生之旅_谙忆的博客】