LoginSignup
3
2

More than 5 years have passed since last update.

Cocos2d-xのサーバー通信方法(JSON+PHP+MySQL) Part3

Last updated at Posted at 2017-11-16

前回のPart1Part2の続き

今回の内容

データベースのデータ受信

手順

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処理とデータの受信処理

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2