UnityでREST API通信 ⑤ PUT通信をおこなう
GET、POSTとスムーズにできましたが、 PUTでちょっとハマってしまいました(・_・;)
※POSTについてはこちらの記事や公式ドキュメント等を参考にさせていただきました。
UnityWebRequestによるHTTP通信 – てっくぼっと!
HTTP サーバーにフォームを送信 (POST) - Unity マニュアル
UnityWebRequestのPUT関数を使おうとしたのですが、
引数にフォームデータを渡せない…(文字列かバイト配列だけ)
UnityドキュメントのPUTの説明を読むと、
「HTTP サーバーに生データをアップロード」と書いてあり、
ん?なんかちがうかも…?
HTTPメソッドについて詳しくなかったのですが(今も)
PUTは更新する以外にもファイルをアップロードするという役割もあるらしいので、
UnityのPUTはこっちなのかなと思いました。
ドキュメントを読んでると、
method:GET や POST など、この UnityWebRequest によって使用される HTTP Verb を定義します。
というのがあったので、
POST
を使用して、 method
変数でHTTPメソッドをPUTにしたらうまくいきました!
UnityWebRequest www = UnityWebRequest.Post(url.webURL, formData); www.method = "PUT";
こちらのstackoverflowの質問でも、同様の解決法が書いてありました。
c# - How to update user picture using PUT method in Unity3D - Stack Overflow
また、Laravel側は、fill()
を使うことで、Modelで設定した$fillable
から、
設定できるプロパティを確認してくれるらしいので、
送信したカラムだけを更新することができます。
$input = $request->all(); $player -> fill($input) -> save();
ふうσ^_^;
webの知識がなくて勉強しつつなので、間違ってること等ありましたらすみません。
わかりづらい箇所などあればお気軽にご質問ください〜♪
では今回はこれにて( ・∇・)ノ