참고: UNet은 지원이 중단되었으며 향후 Unity에서 삭제될 예정입니다. 현재 새로운 시스템이 개발 중입니다. 자세한 내용과 다음 단계는 이 블로그 포스트와 FAQ를 참조하십시오. |
일부 최신 웹 애플리케이션은 HTTP PUT 동사를 통해 파일을 업로드하는 것을 선호합니다. 이 시나리오의 경우 Unity는 UnityWebRequest.PUT
함수를 제공합니다.
이 함수는 두 가지 인수를 사용합니다. 첫 번째 인수는 문자열이며, 요청에 타겟 URL을 지정합니다. 두 번째 인수는 문자열 또는 바이트 배열이며, 서버에 전송할 페이로드 데이터를 지정합니다.
함수 시그니쳐:
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("http://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!");
}
}
}