Unity Web Request Sending Form
Send HTML form data to a server using the UnityWebRequest form APIs.
읽는 시간 2분최근 업데이트: 한 달 전
데이터를 HTML 양식으로 포맷된 서버로 전송하는 두 가지 주요 함수가 있습니다. WWW 시스템에서 마이그레이션하는 경우 아래의 WWWForm 사용을 참조하십시오.
IMultipartFormSection 사용
양식 데이터를 지정하는 방법을 더 잘 제어할 수 있도록 시스템에는 사용자가 구현할 수 있는 인터페이스가 포함되어 있습니다. Unity는 표준 애플리케이션의 경우 및 데이터 및 파일 섹션에 대한 기본 구현도 제공합니다.
UnityWebRequestIMultipartFormSectionMultipartFormDataSectionMultipartFormFileSectionUnityWebRequest.POSTIMultipartFormSectionsUnityWebRequest.Post(string url, List<IMultipartFormSection> formSections);
세부 정보
- 이 함수는 를 생성하고 타겟 URL을 첫 번째 문자열 파라미터로 설정합니다. 또한
UnityWebRequest의 Content-Type 헤더를UnityWebRequest오브젝트 목록에 지정된 양식 데이터에 대해 적절하게 설정합니다.IMultipartFormSection - 기본적으로 이 함수는 에
UnityWebRequest를 연결합니다. 편의를 위해서, 서버의 응답을 확인하는 데 사용할 수 있습니다.DownloadHandlerBuffer - 함수와 마찬가지로, 이 HLAPI 함수는 제공된 각
WWWForm POST을 순서대로 호출하여 RFC 2616에 지정된 표준 멀티파트 양식으로 포맷합니다.IMultipartFormSection - 사전 포맷된 양식 데이터는 표준 오브젝트에 저장되어
UploadHandlerRaw에 연결됩니다. 따라서UnityWebRequest호출 후에 수행된UnityWebRequest.POST오브젝트 변경 사항은 서버로 전송된 데이터에 반영되지 않습니다.IMultipartFormSection
예제
using UnityEngine;using UnityEngine.Networking;using System.Collections;using System.Collections.Generic;public class MyBehavior : MonoBehaviour{ void Start() { StartCoroutine(Upload()); } IEnumerator Upload() { var formData = new List<IMultipartFormSection>(); formData.Add(new MultipartFormDataSection("field1=foo&field2=bar")); formData.Add(new MultipartFormFileSection("my file data", "myfile.txt")); using var www = UnityWebRequest.Post("https://www.my-server.com/myform", formData); yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.Log(www.error); } else { Debug.Log("Form upload complete!"); } }}
WWWForm 사용(레거시 함수)
WWW 시스템에서 마이그레이션할 수 있도록 UnityWebRequest 시스템은 WWWForm 오브젝트를 사용하여 양식 데이터를 제공할 수 있도록 허용합니다.
이 경우 함수 시그니쳐는 다음과 같습니다.
UnityWebRequest.Post(string url, WWWForm formData);
세부 정보
- 이 함수는 새 를 생성하고 타겟 URL을 첫 번째 문자열 인자의 값으로 설정합니다. 또한
UnityWebRequest인자에 의해 생성된 모든 커스텀 헤더(예: Content-Type)를 읽고WWWForm에 복사합니다.UnityWebRequest - 기본적으로 이 함수는 에
UnityWebRequest를 연결합니다. 편의를 위해서, 서버의 응답을 확인하는 데 사용할 수 있습니다.DownloadHandlerBuffer - 이 함수는 에서 생성된 원시 데이터를 읽고
WWWForm object에 연결된UnityWebRequest오브젝트에 버퍼링합니다. 따라서UploadHandlerRaw호출 후의UnityWebRequest.POST오브젝트 변경은WWWForm의 내용을 변 경하지 않습니다.UnityWebRequest
예제
using UnityEngine;using UnityEngine.Networking;using System.Collections; public class MyBehavior : MonoBehaviour { void Start() { StartCoroutine(Upload()); } IEnumerator Upload() { WWWForm form = new WWWForm(); form.AddField("myField", "myData"); using var www = UnityWebRequest.Post("https://www.my-server.com/myform", form); yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.Log(www.error); } else { Debug.Log("Form upload complete!"); } }}