#include "extension.h"
#include "HttpRequest.h"
#include "HttpClient.h"
#include "HttpResponse.h"
2,名空间
using namespace cocos2d;
using namespace CocosDenshion;
using namespace extension;
3,网络请求对象 //创建一个网络请求,所有的参数设置在网络请求里边,如地址,回调函数,请求方式,参数等,最后需要用CCHttpClient提交网络请求。
CCHttpRequest* request = new CCHttpRequest();
//设置网络请求地址
request->setUrl("");
//设置网络请求方式
request->setRequestType(CCHttpRequest::kHttpGet);
/**
* 请求的方式,枚举类型
typedef enum
{
kHttpGet,//get方式
kHttpPost,//post方式
kHttpPut,//put方式,没有用过,不知道
kHttpDelete,//delete方式,没用过
kHttpUnkown,//未知方式,没用过
} HttpRequestType;
*/
// const char* postData = "visitor=cocos2d&TestSuite=Extensions Test/NetworkTest";
//提交的参数,post提交的参数
// request->setRequestData(postData, strlen(postData));
//设置回调
request->setResponseCallback();
//设置请求tag
request->setTag("GET test1");
//提交请求
CCHttpClient::getInstance()->send(request);
//内存释放
request->release();
//======================完整代码
//注:ios和android网络访问我们已经熟练的将其放在一个线程中处理,但是cocos2d-x 查看源码我们就知道,系统在send操作里边自动添加了Thread,我们需要在外层添加新的线程,执行添加回调函数就ok
//提交请求
CCHttpRequest* request = new CCHttpRequest();
//url
request->setUrl("www.baidu.com");
request->setRequestType(CCHttpRequest::kHttpGet);
request->setResponseCallback(this, httpresponse_selector(HelloWorld::netWorkTest));
request->setTag("GET test1");
CCHttpClient::getInstance()->send(request);
request->release();
//回调处理
void HelloWorld::netWorkTest(CCObject* pSender,void *data){
CCHttpResponse* response = (CCHttpResponse*)data;
char statusString[64] = {};
int statusCode = response->getResponseCode();
CCLog("response code: %d", statusCode);
//处理请求状态码
sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag());
CCLog("statusString:%s",statusString);
//判断请求是否成功
if (!response->isSucceed())
{
CCLog("response failed");
CCLog("error buffer: %s", response->getErrorBuffer());
return;
}
std::vector<char> *buffer = response->getResponseData();
CCLOG("size:%lu",buffer->size());
printf("Http Test, dump data: ");
//转化为str类型
std::string str;
str.insert(str.begin(), buffer->begin(), buffer->end());
std::cout<<"str: "<<str;
}