注意 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
に設定します。DownloadHandlerBuffer
を UnityWebRequest
に設定します。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!");
}
}
}