通知
すべてクリア
18/03/2021 10:29 am
質問箇所:WWWFormとWebRecest.Postについて
WWWFormのUnityスクリプトリファレンスを調べました。
https://docs.unity3d.com/ja/current/ScriptReference/WWWForm.html
https://docs.unity3d.com/ja/current/ScriptReference/WWWForm.html
「SQL データベースのテーブルに保存されたハイスコアを取得するための サンプルスクリプト」
のスクリプトでおそらく課題でやらなきゃいけないのはこういうことだろうなと思い読んでみたのですが、何をしたいのかさえよくわかりませんでした。
のスクリプトでおそらく課題でやらなきゃいけないのはこういうことだろうなと思い読んでみたのですが、何をしたいのかさえよくわかりませんでした。
string playName = "Player 1";
int score = -1;
//---------省略-------------------
form.AddField( "game", "MyGameName" );
form.AddField( "playerName", playName );
form.AddField( "score", score );
var download = UnityWebRequest.Post(highscore_url, form);
具体的に上記は何をしているのでしょうか?
form.AddField( "playerName", playName );
playerNameというフィールドにplayeName= "Player 1"
という値を設定しているんだと思いますが、
これにより、downloadに取得できるデータが
データベース内の"Player 1"関連のレコードだけに限定できるという意味?ですか?
という値を設定しているんだと思いますが、
これにより、downloadに取得できるデータが
データベース内の"Player 1"関連のレコードだけに限定できるという意味?ですか?
Request.Postを調べると、HTTPにデータを送信するための機能らしいですが、
講義スライドにあるような「指定したカテゴリのデータのみ選択的に取得する」方法を見つけることができませんでした。
講義スライドにあるような「指定したカテゴリのデータのみ選択的に取得する」方法を見つけることができませんでした。
HTTPメソッドとかWebRequestクラスとか一通り調べてみたのですけど、
どれもこれも言葉が難しすぎてちんぷんかんぷんなので、
どれもこれも言葉が難しすぎてちんぷんかんぷんなので、
form.AddField( "game", "MyGameName" );
form.AddField( "playerName", playName );
form.AddField( "score", score );
で、作成されたフォームというものが
var download = UnityWebRequest.Post(highscore_url, form);
こちらで具体的にどのような役割をしているのか
ご教授いただきたいです。
ご教授いただきたいです。
18/03/2021 10:29 am
質問内容がよくわからないのですがつまり
form.AddField( "game", "MyGameName" );
form.AddField( "playerName", playName );
form.AddField( "score", score );var download = UnityWebRequest.Post(highscore_url, form);
は何を行っているかを知りたいということですか?
これは
WWWForm
型で作られたクラスにAddField
でフィールドを追加していき、それをPOST形式でデータをサーバーに送信するように設定されたUnityWebRequest
を作成しています(POST形式とはHTTPで使われているメソッドのことで、主にデータを送信する時に使います)。あとは
SendWebRequest
メソッドでリクエストを送り、メソッドの返り値によってエラーか否かを判断しています。(クライアントからサーバへの要求することをリクエストといいます)簡単に言うと、「送信するデータを
WWWForm
型で準備し、それをPOST形式で扱えるようにUnityWebRequest
データを作成。その
UnityWebRequest
データをサーバにリクエストし、返ってきた値を確認する」といった形でしょうか
18/03/2021 10:31 am
ご回答ありがとうございます!
質問文がぐちゃぐちゃとなってしまいお手数おかけしております。
質問文がぐちゃぐちゃとなってしまいお手数おかけしております。
「POST形式はデータを送信する時に使う」こちらについて、
理解いたしました!ただ、わからない部分は以下の部分です。
ーーー
講義「APIについて④」のカリキュラム「T07_day10_Api-Basic.pdf」39pの課題のページで、
理解いたしました!ただ、わからない部分は以下の部分です。
ーーー
講義「APIについて④」のカリキュラム「T07_day10_Api-Basic.pdf」39pの課題のページで、
WebRequest.POST通信を行う事で、指定したデータのみ取得する処理の作成等が行えるようになります。
例:
・POSTパラメータでレコード番号をサーバーへ送り、特定のレコードのみ取得する。
・テーブルのリストを全て取得するのではなく、指定したカテゴリの情報のみ取得する等。
とあり、こちらの「指定したデータのみ取得」
というのは例えば「メッセージボード」のデータベースで
名前、性別、メッセージ
というカラム(フィールド)があったとして、
「WebRequest.POST通信を行うことで、性別が男の人のレコードだけを取得できる」
というようなことを言っているのだと思いますが
というのは例えば「メッセージボード」のデータベースで
名前、性別、メッセージ
というカラム(フィールド)があったとして、
「WebRequest.POST通信を行うことで、性別が男の人のレコードだけを取得できる」
というようなことを言っているのだと思いますが
このようなことをどのようにPOST通信を利用して行えるのかわかりません。
ーーーーー
例えば
ーーーーー
例えば
form.AddField( "name", "aiko" );
form.AddField( "gender", "female" );
form.AddField( "message", "good morning!" );
var download = UnityWebRequest.Post(messageboard_url, form);
のようにPOST通信を行ったとしても、
データベースに
データベースに
{"name":"aiko","gender":"female","message":"good morning!"}
のようなデータを追加する処理を行えるだけだからです。
ーーー
このPOST通信の機能がここからどのように「性別が男の人のレコードだけを取得する」のような処理を行えるのかまったく理解できませんでした。
ーーー
このPOST通信の機能がここからどのように「性別が男の人のレコードだけを取得する」のような処理を行えるのかまったく理解できませんでした。
WebRequest.POST通信を行う事で、指定したデータのみ取得する処理の作成等が行う
こちらはどのように行うのでしょうか?
再度お手数おかけしますが、ご回答のほど何卒よろしくお願いいたします。
18/03/2021 10:32 am
form.AddField()で受け取った値を取得するようにphp側を記述すればいいと思います。
//ソートするデータタイプとソートタイプの指定
$dataType = $this->request->getData("DataType");
$sortType = 'DESC';
//取得する数を指定
$limitNum = 10;//DBのBakeしたテーブルから指定してdataTypeクエリを取得
$query = $this->Database->find('all')->order([$dataType => $sortType])->limit($limitNum)->toArray();
18/03/2021 10:32 am
ご回答ありがとうございます!
スライドの書き方からUnityWebRequwest.Post自体に、queryのような機能があるのかと思っておりました。
やはりphp側でqueryを利用するのですね!
やっと納得しました。ありがとうございます!