UnityWebRequest.Post
Declaration
public static Networking.UnityWebRequest Post(string uri, string postData, string contentType);public static Networking.UnityWebRequest Post(Uri uri, string postData, string contentType);Параметры
| Параметр | Описание |
|---|---|
| час | Назначение URI, которому будет передана строка. |
| postData | Данные тела формы. Будут преобразованы в строку UTF-8. |
| contentType | Значение для заголовка Content-Type, например application/json. |
Возвращаемое значение
UnityWebRequest UnityWebRequest настроен для отправки строки в uri через POST.
Описание
Создает UnityWebRequest, настроенный для отправки данных формы на сервер через HTTP POST.
Этот метод создает UnityWebRequest, устанавливает url в строку uri и устанавливает method в POST. Заголовок Content-Type будет установлен в contentType.
Этот метод добавляет DownloadHandlerBuffer в UnityWebRequest. Это сделано для удобства, так как мы ожидаем, что большинство пользователей будут использовать DownloadHandler для проверки ответов от сервера, особенно в случае REST APIs.
Данные в postData будут интерпретированы в поток байтов через System.Text.Encoding.UTF8. Полученный поток байтов будет храниться в UploadHandlerRaw и Обработчик Загрузки будет добавлен к этому UnityWebRequest.
using UnityEngine; using UnityEngine.Networking; using System.Collections;
public class MyBehavior : MonoBehaviour { void Start() { StartCoroutine(Upload()); }
IEnumerator Upload() { using (UnityWebRequest www = UnityWebRequest.Post("https://www.my-server.com/myapi", "{ \"field1\": 1, \"field2\": 2 }", "application/json")) { yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success) { Debug.LogError(www.error); } else { Debug.Log("Form upload complete!"); } } } }
Declaration
public static Networking.UnityWebRequest Post(string uri, WWWForm formData);public static Networking.UnityWebRequest Post(Uri uri, WWWForm formData);Параметры
| Параметр | Описание |
|---|---|
| час | Цель URI, на которую будут передаваться данные формы. |
| formData | Поля формы или файлы, инкапсулированные в объекте WWWForm, для форматирования и передачи на удаленный сервер. |
Возвращаемое значение
UnityWebRequest UnityWebRequest настроен для отправки данных формы в uri через POST.
Описание
Создайте UnityWebRequest, настроенный для отправки данных формы на сервер через HTTP POST.
Этот метод создаёт UnityWebRequest, задаёт url из строкового аргумента uri, а method присваивает POST. Заголовок Content-Type копируется из параметра formData.
Метод прикрепляет DownloadHandlerBuffer к UnityWebRequest. Это сделано для удобства, поскольку ожидается, что большинство пользователей будут проверять ответы сервера через DownloadHandler, особенно при работе с REST API.
Объект formData создаёт поток байтов в формате, соответствующем его содержимому. Полученный поток байтов сохраняется в UploadHandlerRaw, а Upload Handler прикрепляется к этому UnityWebRequest.
using UnityEngine; using UnityEngine.Networking; using System.Collections;
public class MyBehavior2 : MonoBehaviour { void Start() { StartCoroutine(Upload()); }
IEnumerator Upload() { WWWForm form = new WWWForm(); form.AddField("myField", "myData");
using UnityWebRequest www = UnityWebRequest.Post("https://www.my-server.com/myform", form); yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success) { Debug.LogError(www.error); } else { Debug.Log("Form upload complete!"); } } }
Declaration
public static Networking.UnityWebRequest Post(string uri, List<IMultipartFormSection> multipartFormSections);public static Networking.UnityWebRequest Post(Uri uri, List<IMultipartFormSection> multipartFormSections);public static Networking.UnityWebRequest Post(string uri, List<IMultipartFormSection> multipartFormSections, byte[] boundary);public static Networking.UnityWebRequest Post(Uri uri, List<IMultipartFormSection> multipartFormSections, byte[] boundary);Параметры
| Параметр | Описание |
|---|---|
| час | Цель URI, на которую будут передаваться данные формы. |
| multipartFormSections | Список полей формы или файлов для форматирования и передачи на удаленный сервер. |
| граница | Уникальная строка границы, которая будет использоваться при разделении полей формы в многочастной форме. Если не предоставлена, граница будет создана для вас. |
Возвращаемое значение
UnityWebRequest UnityWebRequest настроен для отправки данных формы в uri через POST.
Описание
Создайте UnityWebRequest, настроенный для отправки данных формы на сервер через HTTP POST.
Этот метод создает UnityWebRequest, url к строке uri аргумент и устанавливает method до POST. Content-Type заголовок будет установлен на multipart/form-data, с соответствующей спецификацией границ.
Если вы поставляете таможню boundary байт массив, обратите внимание, что последовательность байт должна быть гарантированно уникальной и не должна появляться ни в одном месте в теле данных формы. Дополнительные сведения о многочастных формах и границах форм см. RFC 2388.
Этот метод прикрепляет DownloadHandlerBuffer к Генеральной Ассамблее UnityWebRequest. Это для удобства, по мере того как мы ожидаем, что большинств пользователи будут использовать DownloadHandler проверить ответы с сервера, особенно в случае REST APIs.
Список IMultipartFormSection объектов в multipartFormSections каждый объект будет интерпретироваться как отдельная секция формы. Поток байтов, полученный в результате форматирования этого многочастного тела формы, будет храниться в файле, содержащем UploadHandlerRaw и прилагается к этому UnityWebRequest.
Использование IMultipartFormSection
Для обеспечения большего контроля над тем, как вы указываете данные формы, система UnityWebRequest содержит (реализуемую пользователем) IMultipartFormSection интерфейс. Для обычных приложений Unity предоставляет также реализации по умолчанию для разделов данных и файлов.
Дополнительные ресурсы: MultipartFormDataSection и MultipartFormFileSection.
Этому методу может быть предоставлен Список объектов IMultipartFormSection. Члены списка будут отформатированы в многочастную форму, как определено в RFC 2388.
Многокомпонентные формы требуют уникальной границы строки для определения разделения между полями. Граница строки должна гарантированно не присутствовать ни в одном из полей формы в запросе. Если вы не предоставите границу, Unity создаст её. Созданная граница состоит из 40 случайных печатаемых байт, которые никогда не столкнутся с данными полей формы. Однако, если ваше приложение требует предоставления собственной границы строки, вы можете сделать это.
Предоставленные границы, если таковые имеются, будут автоматически преобразованы из массива байтов в символы UTF8.
using UnityEngine; using UnityEngine.Networking; using System.Collections; using System.Collections.Generic;
public class MyBehavior3 : MonoBehaviour { void Start() { StartCoroutine(Upload()); }
IEnumerator Upload() { List<IMultipartFormSection> form = new(); form.Add(new MultipartFormDataSection("myField", "myData"));
using UnityWebRequest www = UnityWebRequest.Post("https://httpbin.org/post", form); yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success) { Debug.LogError(www.error); } else { Debug.Log("Form upload complete!"); } } }
Declaration
public static Networking.UnityWebRequest Post(string uri, Dictionary<string,string> formFields);public static Networking.UnityWebRequest Post(Uri uri, Dictionary<string,string> formFields);Параметры
| Параметр | Описание |
|---|---|
| час | Цель URI, на которую будут передаваться данные формы. |
| formFields | Строки, указывающие ключи и значения полей формы. Будут автоматически отформатированы в тело формы с кодировкой URL. |
Возвращаемое значение
UnityWebRequest UnityWebRequest настроен для отправки данных формы в uri через POST.
Описание
Создайте UnityWebRequest, настроенный для отправки данных формы на сервер через HTTP POST.
Этот метод создает UnityWebRequest, устанавливает url в строку uri и устанавливает method в POST. Заголовок Content-Type будет установлен в application/x-www-form-urlencoded.
Словарь строк в formFields будет интерпретирован как список полей формы, поле IDs является ключом словаря, а значения полей являются значениями словаря. И ключи, и значения будут спасены, а затем объединены в строку формы с кодировкой URL (например, key1=value1&key2=value2).
Этот метод по умолчанию добавляет DownloadHandlerBuffer к UnityWebRequest. Это сделано для удобства, так как мы ожидаем, что большинство пользователей будут использовать DownloadHandler для проверки ответов от сервера, особенно в случае REST APIs.
URL-кодированная строка формы, генерируемая из formFields, будет преобразована в поток байтов и сохранена в UploadHandlerRaw, который будет прикреплен к этому UnityWebRequest.
using UnityEngine; using UnityEngine.Networking; using System.Collections; using System.Collections.Generic;
public class MyBehavior4 : MonoBehaviour { void Start() { StartCoroutine(Upload()); }
IEnumerator Upload() { Dictionary<string, string> form = new(); form["myField"] = "myData";
using UnityWebRequest www = UnityWebRequest.Post("https://httpbin.org/post", form); yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success) { Debug.LogError(www.error); } else { Debug.Log("Form upload complete!"); } } }