기술 자료

Unity Engine

Unity Engine

Unity Web Request Creating Upload Handlers

Send request body data to a server using the UploadHandlerRaw and UploadHandlerFile upload handlers.
읽는 시간 1분최근 업데이트: 한 달 전

현재 사용 가능한 업로드 핸들러 유형은
UploadHandlerRaw
및
UploadHandlerFile
의 두 가지입니다.
UploadHandlerRaw
클래스는 구성 시점에 데이터 버퍼를 받습니다. 이 버퍼가 바이트 배열이면 내부적으로 네이티브 코드 메모리에 복사됩니다. 원격 서버가 요청 본문 데이터를 받을 준비가 되면
UnityWebRequest
시스템이 이 버퍼를 사용합니다. 버퍼를
NativeArray
로 제공하면 복제가 수행되지 않습니다.
UploadHandlerFile
을 사용하면 파일의 내용을 요청 본문으로 전송할 수 있습니다. 이 핸들러를 사용하면 많은 메모리를 사용하지 않고도 서버로 큰 파일을 보낼 수 있습니다. 핸들러가 파일에서 데이터를 읽은 다음 전송하므로 파일의 일부만 메모리에 유지됩니다.
업로드 핸들러도 Content Type 문자열을 허용합니다. 이 문자열은 UnityWebRequest 자체에
Content-Type
헤더를 설정하지 않은 경우 UnityWebRequest의
Content-Type
헤더 값에 사용됩니다. UnityWebRequest 오브젝트에서 수동으로
Content-Type
헤더를 설정하면 Upload Handler 오브젝트의
Content-Type
이 무시됩니다.
UnityWebRequest나
UploadHandler
에서
Content-Type
을 설정하지 않으면 시스템은 기본적으로
application/octet-stream
의
Content-Type
을 설정합니다.
UnityWebRequest
에는 기본값이 true인 프로퍼티
disposeUploadHandlerOnDispose
가 있습니다. 이 프로퍼티가 true일 경우 UnityWebRequest 오브젝트가 제거되면 연결된 업로드 핸들러에서도 Dispose()가 호출되어 렌더링할 이유가 없어집니다. UnityWebRequest에 대한 레퍼런스보다 업로드 핸들러에 대한 레퍼런스를 더 오래 유지하는 경우 disposeUploadHandlerOnDispose를 false로 설정해야 합니다.

예제

byte[] payload = new byte[1024];// ... fill payload with data ...UnityWebRequest wr = new UnityWebRequest("https://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;