참고: UNet은 지원이 중단되었으며 향후 Unity에서 삭제될 예정입니다. 현재 새로운 시스템이 개발 중입니다. 자세한 내용과 다음 단계는 이 블로그 포스트와 FAQ를 참조하십시오. |
현재 한 가지 타입의 업로드 핸들러, UploadHandlerRaw
만 사용할 수 있습니다. 이 클래스는 구성 시 데이터 버퍼를 받아들입니다. 이 버퍼는 내부적으로 네이티브 코드 메모리에 복사되며, 원격 서버가 바디 데이터를 받아들일 준비가 되면 UnityWebRequest
시스템에 의해 사용됩니다.
업로드 핸들러는 또한 Content Type 문자열을 받아들입니다. 이 문자열은 UnityWebRequest 자체에 Content-Type
헤더를 설정하지 않았을 경우 UnityWebRequest의 Content-Type
헤더의 값에 사용됩니다. 수동으로 UnityWebRequest 오브젝트에 Content-Type
헤더를 설정하면 업로드 핸들러 오브젝트의 Content-Type
이 무시됩니다.
UnityWebRequest나 업로드 핸들러
에 Content-Type
을 설정하지 않으면 시스템은 application/octet-stream
의 Content-Type
을 디폴트 설정으로 합니다.
UnityWebRequest
에는 disposeUploadHandlerOnDispose
프로퍼티가 있으며, 디폴트 설정은 true입니다. 이 프로퍼티가 true일 경우 UnityWebRequest 오브젝트가 제거되면 연결된 업로드 핸들러가 이 오브젝트를 쓸모없게 만들 때 Dispose()도 호출됩니다. 업로드 핸들러에 대한 레퍼런스를 UnityWebRequest에 대한 레퍼런스보다 더 오래 보관하려면 disposeUploadHandlerOnDispose를 false로 설정해야 합니다.
byte[] payload = new byte[1024];
// ... fill payload with data ...
UnityWebRequest wr = new UnityWebRequest("http://www.mysite.com/data-upload");
UploadHandler uploader = new UploadHandlerRaw(payload);
// Sends header: "Content-Type: custom/content-type";
uploader.contentType = "custom/content-type";
wr.uploadHandler = uploader;