# PostWwwForm

> Creates a UnityWebRequest configured to send form data to a server via HTTP POST.

## Definition

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

## PostWwwForm(string, string)

Creates a UnityWebRequest configured to send form data to a server via HTTP `POST`.

```csharp
public static UnityWebRequest PostWwwForm(string uri, string form)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The target URI to which form data will be transmitted.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): An HTML form to send.

### Returns

| Type                                                                                         | Description                                                         |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) | A UnityWebRequest configured to send form data to `uri` via `POST`. |

### Remarks

This method creates a UnityWebRequest, sets the `uri` and sets the method to `POST`. The `Content-Type` header will be set to `application/x-www-form-urlencoded` by default.

This method attaches a [DownloadHandlerBuffer](/engine/6000.5/script-reference/unityengine/networking/downloadhandlerbuffer.md) to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md). This is for convenience, as we anticipate most users will use the [DownloadHandler](/engine/6000.5/script-reference/unityengine/networking/downloadhandler.md) to check replies from the server, particularly in the case of REST APIs.

The string in the `form` parameter is expected to be a preformatted HTML form. It will be escaped and sent as UTF-8 string.

### Examples

```csharp
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class MyBehavior : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(Upload());
    }

    IEnumerator Upload()
    {
        using (UnityWebRequest www = UnityWebRequest.PostWwwForm("https://www.my-server.com/myapi", "field1=1&field2=value2"))
        {
            yield return www.SendWebRequest();

            if (www.result != UnityWebRequest.Result.Success)
            {
                Debug.LogError(www.error);
            }
            else
            {
                Debug.Log("Form upload complete!");
            }
        }
    }
}
```

## PostWwwForm(Uri, string)

Creates a UnityWebRequest configured to send form data to a server via HTTP `POST`.

```csharp
public static UnityWebRequest PostWwwForm(Uri uri, string form)
```

### Parameters

**** (\[Uri]\(https\://learn.microsoft.com/dotnet/api/system.uri)): The target URI to which form data will be transmitted.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): An HTML form to send.

### Returns

| Type                                                                                         | Description                                                         |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) | A UnityWebRequest configured to send form data to `uri` via `POST`. |

### Remarks

This method creates a UnityWebRequest, sets the `uri` and sets the method to `POST`. The `Content-Type` header will be set to `application/x-www-form-urlencoded` by default.

This method attaches a [DownloadHandlerBuffer](/engine/6000.5/script-reference/unityengine/networking/downloadhandlerbuffer.md) to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md). This is for convenience, as we anticipate most users will use the [DownloadHandler](/engine/6000.5/script-reference/unityengine/networking/downloadhandler.md) to check replies from the server, particularly in the case of REST APIs.

The string in the `form` parameter is expected to be a preformatted HTML form. It will be escaped and sent as UTF-8 string.

### Examples

```csharp
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class MyBehavior : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(Upload());
    }

    IEnumerator Upload()
    {
        using (UnityWebRequest www = UnityWebRequest.PostWwwForm("https://www.my-server.com/myapi", "field1=1&field2=value2"))
        {
            yield return www.SendWebRequest();

            if (www.result != UnityWebRequest.Result.Success)
            {
                Debug.LogError(www.error);
            }
            else
            {
                Debug.Log("Form upload complete!");
            }
        }
    }
}
```
