#今回の内容
データベースのデータ受信
#手順
part1、part2でやった手順とほとんど同じ
1.JSON作成(いらない場合有)
2.JSONをリクエストURL(PHP)に送信
3.PHPからサーバーのデータを取得しJSON形式で送信元に送信
4.Cocos2d-xでデータを受信、必要な形式に展開
#JSON作成
Part1 ~JSONの作成~ 参照
obj.insert(std::make_pair("playerNo", picojson::value(StringUtils::format("%i", 1))));
データベースのテーブルデータ一部(プレイヤーのデータ)だけ欲しい場合、ユーザー認証させたい場合はJSONを作る
今回は[playerNo]を送信しユーザーデータを取得する
#JSONをリクエストURL(PHP)に送信
Part1 ~HTTPリクエスト~ 参照
sample.cpp
#include "network/HttpRequest.h"
#include "network/HttpClient.h"
//How to use
auto request = new cocos2d::network::HttpRequest();
request->setUrl("リクエストURL");
request->setRequestType(cocos2d::network::HttpRequest::Type::POST);
request->setTag("setInsert");
request->setResponseCallback([=](cocos2d::network::HttpClient* client, cocos2d::network::HttpResponse* response){
//データ受信、必要な形式展開に重要なところ
if (response->isSucceed()) {
//送信成功時の処理
}else {
//送信失敗時の処理
}
//ここまで重要
});
picojson::object obj;
obj.insert(std::make_pair("playerNo", picojson::value(StringUtils::format("%i", 1))));
picojson::value val(obj);
std::string json = val.serialize();
request->setRequestData(json.c_str(), json.length());
auto httpClient = cocos2d::network::HttpClient::getInstance();
httpClient->enableCookies(nullptr);
httpClient->send(request);
request->release();
前回と同様にリクエストURLにはサーバーにアップロードしたphpのパスを記述
request->setUrl("https://~/sample.php");
#Part4
次回はPHP処理とデータの受信処理