您的位置:首页 > 理论基础 > 计算机网络

Cocos2d HttpClient 用法

2016-02-09 22:50 495 查看
POST

HttpRequest* request = new HttpRequest();

request->setUrl("http://httpbin.org/post");

request->setRequestType(HttpRequest::Type::POST);

request->setResponseCallback(CC_CALLBACK_2(HelloWorld::onHttpRequestCompleted,this));

// write the post data

const char* postData = "visitor=cocos2d&TestSuite=Extensions Test/NetworkTest";

request->setRequestData(postData, strlen(postData));

request->setTag("POST test");

cocos2d::network::HttpClient::getInstance()->send(request);

request->release();

Get

HttpRequest* request = new HttpRequest();

request->setUrl("http://www.baidu.com");

request->setRequestType(HttpRequest::Type::GET);

request->setResponseCallback(CC_CALLBACK_2(HelloWorld::onHttpRequestCompleted,this));

request->setTag("GET test");

cocos2d::network::HttpClient::getInstance()->send(request);

request->release();

CallBack 函数

必须头文件声明

#include "network/HttpClient"

using namespace cocos2d::network;

void onHttpRequestCompleted(HttpClient * sender,HttpResponse * response);

void ClassName:onHttpRequestCompleted(HttpClient *sender, HttpResponse *response)

{

if (!response)

{

return;

}

// You can get original request type from: response->request->reqType

if (0 != strlen(response->getHttpRequest()->getTag()))

{

log("%s completed", response->getHttpRequest()->getTag());

}

int statusCode = response->getResponseCode();

char statusString[64] = {};

sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag());

log("response code: %d", statusCode);

if (!response->isSucceed())

{

log("response failed");

log("error buffer: %s", response->getErrorBuffer());

return;

}

// dump data

std::vector<char> *buffer = response->getResponseData();

printf("Http Test, dump data: ");

for (unsigned int i = 0; i < buffer->size(); i++)

{

printf("%c", (*buffer)[i]);

}

printf("\n");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: