色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

cchttprequest json

阮建安1年前8瀏覽0評論

關于cchttprequest json

cchttprequest是cocos2d-x游戲引擎中的一個網絡請求庫,它可以用來進行http、https網絡請求,其中就包括了json格式的數據。下面我們就來詳細介紹一下如何使用cchttprequest進行json數據的請求和解析。

1. 發送json請求

發送json格式的請求是很簡單的,我們只需要先將需要發送的json數據轉換成sting類型,然后將其放入http請求中即可:
void sendJsonRequest(string url, string requestData)
{
HttpRequest* httpRequest = new HttpRequest();
httpRequest->setUrl(url);
httpRequest->setRequestType(HttpRequest::Type::POST);
httpRequest->setResponseCallback(this, httpresponse_selector(HelloWorld::onHttpRequestCompleted));   //請求完成后的回調函數
string strPostData = "postData=";
strPostData += requestData;   //將json數據放入post請求中
httpRequest->setRequestData(strPostData.c_str(), strPostData.length());   //設置請求數據為post請求
httpRequest->setTag("SendJsonRequest");
HttpClient::getInstance()->send(httpRequest);
httpRequest->release();    //為避免內存泄漏,需要手動釋放對象
}

2. 解析json數據

得到服務器返回的json數據之后,我們可以使用rapidjson庫來對其進行解析。解析json數據的大致流程如下:
void HelloWorld::onHttpRequestCompleted(HttpClient* client, HttpResponse* response)
{
if (!response ) 
{
return;
}
if (!response->isSucceed())
{
return;
}
vector* buffer = response->getResponseData();   //獲取服務器返回的數據
std::string responseData(buffer->begin(), buffer->end());   //將vector轉換為std::string類型
rapidjson::Document doc;
if (doc.Parse(responseData.c_str()).HasParseError())
{
return;
}
if(!doc.IsObject())
{
return;
}
if (doc.HasMember("status") && doc["status"].IsInt()) //判斷json數據中是否含有“status”字段
{
int status = doc["status"].GetInt();   //獲取“status”字段的值
}
}
通過以上代碼,我們就可以使用cchttprequest發送、接收和解析json數據了。