# Put

> Creates a UnityWebRequest configured to upload raw data to a remote server via HTTP PUT.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Networking](/engine/6000.6/script-reference/unityengine/networking.md)
* **Assembly:** UnityEngine.UnityWebRequestModule

## Put(string, byte\[])

Creates a UnityWebRequest configured to upload raw data to a remote server via HTTP PUT.

```csharp
public static UnityWebRequest Put(string uri, byte[] bodyData)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The URI to which the data will be sent.**** (\[byte\[]]\(https\://learn.microsoft.com/dotnet/api/system.byte)): The data to transmit to the remote server.If a string, the string will be converted to raw bytes via [System.Text.Encoding.UTF8](https://msdn.microsoft.com/en-us/library/system.text.encoding.utf8).

### Returns

| Type                                                                                         | Description                                                                |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [UnityWebRequest](/engine/6000.6/script-reference/unityengine/networking/unitywebrequest.md) | A UnityWebRequest configured to transmit `bodyData` to `uri` via HTTP PUT. |

### Remarks

This method creates a UnityWebRequest, sets the target URL to the string `uri` argument and the `method` to `PUT`. It also sets the `Content-Type` header to `application/octet-stream`.

This method attaches a standard [DownloadHandlerBuffer](/engine/6000.6/script-reference/unityengine/networking/downloadhandlerbuffer.md) to the UnityWebRequest. This is for convenience during development, as well as for applications which return status information regarding the uploaded data in the HTTP response body.

This method stores the input upload data in an [UploadHandlerRaw](/engine/6000.6/script-reference/unityengine/networking/uploadhandlerraw.md) object and attaches it to the [UnityWebRequest](/engine/6000.6/script-reference/unityengine/networking/unitywebrequest.md). [UploadHandlerRaw](/engine/6000.6/script-reference/unityengine/networking/uploadhandlerraw.md) copies the input data into a buffer. Therefore, changes to the `bodyData` array performed after the call to this method will not be reflected in the data sent to the server.

### Examples

```csharp
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");
        using (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!");
            }
        }
    }
}
```

## Put(Uri, byte\[])

Creates a UnityWebRequest configured to upload raw data to a remote server via HTTP PUT.

```csharp
public static UnityWebRequest Put(Uri uri, byte[] bodyData)
```

### Parameters

**** (\[Uri]\(https\://learn.microsoft.com/dotnet/api/system.uri)): The URI to which the data will be sent.**** (\[byte\[]]\(https\://learn.microsoft.com/dotnet/api/system.byte)): The data to transmit to the remote server.If a string, the string will be converted to raw bytes via [System.Text.Encoding.UTF8](https://msdn.microsoft.com/en-us/library/system.text.encoding.utf8).

### Returns

| Type                                                                                         | Description                                                                |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [UnityWebRequest](/engine/6000.6/script-reference/unityengine/networking/unitywebrequest.md) | A UnityWebRequest configured to transmit `bodyData` to `uri` via HTTP PUT. |

### Remarks

This method creates a UnityWebRequest, sets the target URL to the string `uri` argument and the `method` to `PUT`. It also sets the `Content-Type` header to `application/octet-stream`.

This method attaches a standard [DownloadHandlerBuffer](/engine/6000.6/script-reference/unityengine/networking/downloadhandlerbuffer.md) to the UnityWebRequest. This is for convenience during development, as well as for applications which return status information regarding the uploaded data in the HTTP response body.

This method stores the input upload data in an [UploadHandlerRaw](/engine/6000.6/script-reference/unityengine/networking/uploadhandlerraw.md) object and attaches it to the [UnityWebRequest](/engine/6000.6/script-reference/unityengine/networking/unitywebrequest.md). [UploadHandlerRaw](/engine/6000.6/script-reference/unityengine/networking/uploadhandlerraw.md) copies the input data into a buffer. Therefore, changes to the `bodyData` array performed after the call to this method will not be reflected in the data sent to the server.

### Examples

```csharp
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");
        using (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!");
            }
        }
    }
}
```

## Put(string, string)

Creates a UnityWebRequest configured to upload raw data to a remote server via HTTP PUT.

```csharp
public static UnityWebRequest Put(string uri, string bodyData)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The URI to which the data will be sent.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The data to transmit to the remote server.If a string, the string will be converted to raw bytes via [System.Text.Encoding.UTF8](https://msdn.microsoft.com/en-us/library/system.text.encoding.utf8).

### Returns

| Type                                                                                         | Description                                                                |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [UnityWebRequest](/engine/6000.6/script-reference/unityengine/networking/unitywebrequest.md) | A UnityWebRequest configured to transmit `bodyData` to `uri` via HTTP PUT. |

### Remarks

This method creates a UnityWebRequest, sets the target URL to the string `uri` argument and the `method` to `PUT`. It also sets the `Content-Type` header to `application/octet-stream`.

This method attaches a standard [DownloadHandlerBuffer](/engine/6000.6/script-reference/unityengine/networking/downloadhandlerbuffer.md) to the UnityWebRequest. This is for convenience during development, as well as for applications which return status information regarding the uploaded data in the HTTP response body.

This method stores the input upload data in an [UploadHandlerRaw](/engine/6000.6/script-reference/unityengine/networking/uploadhandlerraw.md) object and attaches it to the [UnityWebRequest](/engine/6000.6/script-reference/unityengine/networking/unitywebrequest.md). [UploadHandlerRaw](/engine/6000.6/script-reference/unityengine/networking/uploadhandlerraw.md) copies the input data into a buffer. Therefore, changes to the `bodyData` array performed after the call to this method will not be reflected in the data sent to the server.

### Examples

```csharp
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");
        using (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!");
            }
        }
    }
}
```

## Put(Uri, string)

Creates a UnityWebRequest configured to upload raw data to a remote server via HTTP PUT.

```csharp
public static UnityWebRequest Put(Uri uri, string bodyData)
```

### Parameters

**** (\[Uri]\(https\://learn.microsoft.com/dotnet/api/system.uri)): The URI to which the data will be sent.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The data to transmit to the remote server.If a string, the string will be converted to raw bytes via [System.Text.Encoding.UTF8](https://msdn.microsoft.com/en-us/library/system.text.encoding.utf8).

### Returns

| Type                                                                                         | Description                                                                |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [UnityWebRequest](/engine/6000.6/script-reference/unityengine/networking/unitywebrequest.md) | A UnityWebRequest configured to transmit `bodyData` to `uri` via HTTP PUT. |

### Remarks

This method creates a UnityWebRequest, sets the target URL to the string `uri` argument and the `method` to `PUT`. It also sets the `Content-Type` header to `application/octet-stream`.

This method attaches a standard [DownloadHandlerBuffer](/engine/6000.6/script-reference/unityengine/networking/downloadhandlerbuffer.md) to the UnityWebRequest. This is for convenience during development, as well as for applications which return status information regarding the uploaded data in the HTTP response body.

This method stores the input upload data in an [UploadHandlerRaw](/engine/6000.6/script-reference/unityengine/networking/uploadhandlerraw.md) object and attaches it to the [UnityWebRequest](/engine/6000.6/script-reference/unityengine/networking/unitywebrequest.md). [UploadHandlerRaw](/engine/6000.6/script-reference/unityengine/networking/uploadhandlerraw.md) copies the input data into a buffer. Therefore, changes to the `bodyData` array performed after the call to this method will not be reflected in the data sent to the server.

### Examples

```csharp
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");
        using (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!");
            }
        }
    }
}
```
