この記事は「Cocos2d-x セーブデータをサーバに送信して保存する」の続きになります。
・第1回 : サーバにデータを保存したい理由と全体の流れ
・第2回 : クライアント側の処理とデータ送信(Httpリクエスト)(ここ)
・第3回 : サーバ側の処理とデータ送信(Httpレスポンス)
・第4回 : クライアント側のレスポンス処理
クライアント側の処理とデータ送信(Httpリクエスト)
クライアント側ではJson形式のデータを作成し、サーバにデータを送信する処理までを記述します。
Json形式のデータ
今回の例では、キャラのレベルとHPをJsonデータとして送信することを想定します。
■サーバに送信するデータ
・レベル(”1″)
・HP(”20″)
これをJson形式のデータにするとこうなります。(一例です)
[{“level”:”1″,”hp”:”20″}]
ではサーバにJsonデータを送信するプログラムを実装してきます。
プログラムの実装
#include "HttpClient.h" #include "cocos-ext.h" #include "spine/Json.h" using namespace cocos2d::network; using namespace cocos2d::extension;
// URL、ヘッダの設定 auto r = new cocos2d::network::HttpRequest(); r->setUrl("phpサーバのアドレス"); std::vector<std::string> h; h.push_back("Content-Type: application/json"); r->setHeaders(h); r->setRequestType(HttpRequest::Type::POST); // データの設定 std::string level = "1"; std::string hp = "20"; std::string data = "[{\"level\":\"" + level + "\", \"hp\":\"" + hp + "\"}]"; const char* buffer = data.c_str(); r->setRequestData(buffer, strlen(buffer)); // データ送信 network::HttpClient::getInstance()->send(r); r->release();
次回は「第3回 : サーバ側の処理とデータ送信(Httpレスポンス)」です。