【Cocos2d-x】Cocos2d-X网络编程-HttpRequest/HttpClient/HttpRe
Cocos2d-x封装了3个类来处理HTTP请求: 使用HttpRequest,HttpClient和HttpResponse这3个类进行Http进行请求时,需要遵循一定流程 请求过程: 使用Cocos2d封装的HttpRequest设置请求信息HttpRequest: 这里的Type是Cocos2d-x定义的一个枚举类型,包括5种类型。 class CC_DLL HttpRequest : public Ref
{
public:
/**
* The HttpRequest type enum used in the HttpRequest::setRequestType.
*/
enum class Type
{
GET,POST,PUT,DELETE,UNKNOWN,};
...
}
设置回调函数: 设置请求的数据,参数buffer是提交的数据,len是请求数据的长度(使用发送数据的实际长度): 头文件和命名空间: #include "network/HttpRequest.h" //1
using namespace cocos2d::network; //2
完整的Request对象创建 auto request = new HttpRequest();
//设置请求网址
request->setUrl("请填写你需要请求的网址");
//设置请求类型
request->setRequestType(HttpRequest::Type::GET);
//设置请求的数据
char data[50] = "data";
request->setRequestData(data,strlen(data));
使用Cocos2d封装的HttpClient发送请求HttpClient: 常用方法 #include "network/HttpClient.h"
using namespace cocos2d::network; //2
//创建HttpClient对象
auto client = HttpClient::getInstance();//getInstance静态成员函数-单例模式模型
client->setTimeoutForConnect(60);//当客户端向服务端发送请求超过这个时间,就会返回一个错误信息
client->setTimeoutForRead(100);//接收数据的读取时间
client->send(request);
使用Cocos2d封装的HttpResponse处理返回的结果HttpResponse: getResponseState issucced(),用来判断是否返回成功。 //实现回调函数
void HelloWorld::complete(HttpClient *client,HttpResponse *response){
//使用HttpResponse类的相关函数,获取状态和数据
log("response code is:%d",response->getResponseCode());//获取请求返回的状态码
if (response->isSucceed()){//判断返回是否成功 成功就返回true
std::vector<char> * data = response->getResponseData();
log("response data is:");
//for (int i = 0; i < data->size(); i++){
// log("%c",(*data)[i]);
// //因为data是一个指针,所以需要取内容操作符,(*data)这样获取的就是数组的首地址,然后再加上角标
//}
}
else{
log("error msg is:%s",response->getErrorBuffer()); // getErrorBuffer-会返回请求数据错误的信息
}
}
完整源代码下载地址:GITHUB源码下载地址: 【点我进行下载】 本文章由[谙忆]编写, 所有权利保留。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |