cocos2d-x向网页请求数据(C++)

来源:互联网 发布:js 字符串转换json数组 编辑:程序博客网 时间:2024/06/07 16:58

HandleLottery函数用来处理网页返回数据

void MyLottery::RequestLottery(){HttpRequest* pHttpReq = new (std::nothrow) HttpRequest();//一个请求数据封装类,用于HttpClient::sendpHttpReq->setRequestType(HttpRequest::Type::POST);//在发送HttpRequest对象前,设置HttpRequest的类型值,它可以是HttpRequest::Type的枚举类型中的任意一个值。std::string url = "";std::string requestData = StringUtils::format("Uid=1005424&Key=%s&LotteryId=2017061401",key);pHttpReq->setUrl(url.c_str());//设置HttpRequest对象的url。 url的值如下:“http://httpbin.org/ip”或“https://httpbin.org/get” pHttpReq->setRequestData(requestData.c_str(), requestData.size());//设置HttpRequest对象的请求数据。 pHttpReq->setTag("requestLottery");//设置字符串标签用于识别request。 这个字符串标签可以通过HttpResponse->getHttpRequest->getTag()获得。pHttpReq->setResponseCallback(CC_CALLBACK_2(MyLottery::HandleLottery, this));//设置target和相关的回调函函数。 当响应返回时,它将调用(pTarget->*pSelector)来处理一些事情。 HttpClient::getInstance()->setTimeoutForConnect(6);//以秒为单位设置连接超时时间。    HttpClient::getInstance()->send(pHttpReq);//添加一个request到任务队列中 pHttpReq->release();}void MyLottery::HandleLottery(HttpClient* client, HttpResponse* response){std::string strMsg;if (!response->isSucceed()){return;}else{std::vector<char> *buffer = response->getResponseData();//获取http响应数据。std::string strData(buffer->begin(), buffer->end());rapidjson::Document doc;doc.Parse<0>(strData.c_str());if (doc.HasParseError())return;if (doc.HasMember("DrawTimes"))m_lotteryResult.drawTime = doc["DrawTimes"].GetInt();if (doc.HasMember("HitMsg"))m_lotteryResult.hitMsg = doc["HitMsg"].GetString();if (doc.HasMember("HitTimes"))m_lotteryResult.hitTime = doc["HitTimes"].GetInt();if (doc.HasMember("IsSuccess"))m_lotteryResult.isSuccess = doc["IsSuccess"].GetBool();if (doc.HasMember("ItemId"))m_lotteryResult.itemId = doc["ItemId"].GetInt();if (doc.HasMember("Opportunities"))m_lotteryResult.opportunities = doc["Opportunities"].GetInt();if (doc.HasMember("UserId"))m_lotteryResult.userId = doc["UserId"].GetInt();}m_opportunityTime->setString(std::to_string(m_lotteryResult.opportunities));}
key用抓包软件获取

原创粉丝点击