Version: 2018.4
言語: 日本語
HTTP サーバーにフォームを送信 (POST)
共通操作 - LLAPI の使用

HTTP サーバーに生データをアップロード (PUT)

注意 UNet は非推奨となり、今後 Unity から削除される予定です。新しいシステムが開発中です。詳細は ブログFAQ を参照してください。

最近一般的に使用される ウェブアプリケーションの中には、HTTP PUT メソッドを使ってファイルをアップロードすることが好ましいものがあります。このような場合のために、Unity は UnityWebRequest.PUT 関数を提供します。

この関数は 2 つの引数を取ります。最初の引数は文字列で、リクエストのターゲット URL を指定します。2 番目の引数は、文字列かバイト配列のいずれかで、サーバーに送信されるペイロードデータを指定します。

関数シグネチャ

WebRequest.Put(string url, string data);
WebRequest.Put(string url, byte[] data);

説明

  • この関数は UnityWebRequest を作成し、コンテンツタイプを application/octet-stream に設定します。
  • この関数は、標準の DownloadHandlerBufferUnityWebRequest に設定します。POST 関数と同様に、この関数をアプリケーションから結果のデータを返すのに使用できます。
  • この関数は入力アップロードデータを標準の UploadHandlerRaw オブジェクトに格納し、それを UnityWebRequest に設定します。結果的に、byte[] 関数を使用する場合、UnityWebRequest.PUT の呼び出し後に実行されたバイト配列への変更は、サーバーにアップロードされたデータに反映されません。

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
 
public class MyBehavior : MonoBehaviour {
    void Start() {
        StartCoroutine(Upload());
    }
 
    IEnumerator Upload() {
        byte[] myData = System.Text.Encoding.UTF8.GetBytes("This is some test data");
        UnityWebRequest www = UnityWebRequest.Put("http://www.my-server.com/upload", myData);
        yield return www.SendWebRequest();
 
        if(www.isNetworkError || www.isHttpError) {
            Debug.Log(www.error);
        }
        else {
            Debug.Log("Upload complete!");
        }
    }
}
HTTP サーバーにフォームを送信 (POST)
共通操作 - LLAPI の使用