質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

1144閲覧

UnityからPHP経由でデータを保存したいが、受け渡しに失敗している

lock

総合スコア4

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/01/11 08:24

前提・実現したいこと

UnityからPHP(Laravel)にjsonデータをGETで送り,Mysqlに保存するシステムを作成しようとしています

発生している問題・エラーメッセージ

Unityの方では200(リクエスト成功)と出ているのですが、jsonデータがPHPの方へ上手く渡せません
エラーが出ているわけではないので、どこでデータの受け渡しに失敗しているか分からない状態です。
どこかソースに間違いがあるのでしょうか?

States Code:200

該当のソースコード

C#

1public class DataTest : MonoBehaviour 2{ 3 4 public string GetData; 5 public string url = "http://example....../index"; 6 7 [Serializable] 8 public class jsonClass 9 { 10 public int task1{ get; set; } 11 public int task2{ get; set; } 12 } 13 14 [Obsolete] 15 public void Start() 16 { 17 StartCoroutine(Post()); 18 } 19 20 [Obsolete] 21 IEnumerator Post() 22 { 23 jsonClass Task = new jsonClass(); 24 Task.task1 = 1; 25 Task.task2 = 1; 26 27 GetData = JsonUtility.ToJson(Task); 28 29 //Getメソッドのリクエストを作成 30 UnityWebRequest request = UnityWebRequest.Get(url); 31 32 //json(string)をbyte[]に変換 33 byte[] TaskData = System.Text.Encoding.UTF8.GetBytes(GetData); 34 35 request.uploadHandler = (UploadHandler)new UploadHandlerRaw(TaskData); 36 request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer(); 37 38 request.SetRequestHeader("Content-Type", "application/json"); 39 40 yield return request.Send(); 41 42 yield return JsonUtility.FromJson<jsonClass>(GetData); 43 44 Debug.Log("Status Code: " + request.responseCode); 45 }

laravel側では、GETで送られたデータを保存しようとしています
以下、コントローラの処理です

php

1<?php 23namespace App\Http\Controllers; 45use App\Models\Task; 67class GETsController extends Controller 8{ 9 public function index() 10 { 11 if (isset($_GET['TaskData'])) { 12 $contents = json_decode($_GET['TaskData']); 1314 $task = new Task(); 15 $task->create([ 16 'task1' => $contents->task1, 17 'task2' => $contents->task2, 18 19 ]); 20 } 2122 return view('display'); 23 } 24}

補足情報(FW/ツールのバージョンなど)

version:Unity 2019.2.8
laravel6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/01/11 08:34 編集

フレームワークで$_GETをそのまま参照すること自体ありません(何を参考に作ったんでしょう) PHPのほうを単体実行で動作確認されていますか? あとLaravelはコントローラだけで動くわけではないので、 ルーティング、ビューも全て提示してください。
m.ts10806

2020/01/11 08:38

あと、Laravelのほうのログも確認してください。「受け渡しに失敗している」確認もできるはずです。
guest

回答1

0

GETの場合、リクエストbodyでデータは受け取れず、URLにQueryをつける形で情報を渡す必要があります

これを参考に

UnityWebRequest request = UnityWebRequest.Get(url);

UnityWebRequest request = new UnityWebRequest(url, "POST");

に変更して
LaravelもPOSTで受け取るようにしましょう。

投稿2020/01/12 05:57

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問