# Unity Web Request Uploading Raw Data

> Upload raw data to a server with an HTTP PUT request using UnityWebRequest.Put.

最近一般的に使用される ウェブアプリケーションの中には、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("https://www.my-server.com/upload", myData);
        yield return www.SendWebRequest();
 
        if (www.result != UnityWebRequest.Result.Success) {
            Debug.Log(www.error);
        }
        else {
            Debug.Log("Upload complete!");
        }
    }
}
```
