Version: 6000.3
语言: 中文
创建 UnityWebRequests
创建 DownloadHandlers

创建 UploadHandlers

目前,有两种类型的上传处理程序可用:UploadHandlerRawUploadHandlerFile.

UploadHandlerRaw类在构造时接受数据缓冲区。当此缓冲区是字节数组时,它会在内部复制到本机代码内存中。UnityWebRequest当远程服务器准备好接收请求正文数据时,系统使用此缓冲区。当缓冲区作为NativeArray,则不执行复制。

UploadHandlerFile允许您将文件的内容作为请求正文发送。使用此处理程序,您可以在不使用大量内存的情况下将大文件发送到服务器。当处理程序从文件中读取数据然后发送数据时,在任何给定时间,只有一小部分文件保留在内存中。

上传处理程序还接受内容类型字符串。此字符串用于 UnityWebRequest 的Content-Typeheader,如果将 noContent-Type标头。如果您手动设置Content-Type标头,则Content-Type在 Upload Handler 对象上被忽略。

如果您没有将Content-Type在 UnityWebRequest 或UploadHandler,则系统默认设置Content-Typeapplication/octet-stream.

UnityWebRequest有一个属性disposeUploadHandlerOnDispose,默认为 true。如果此属性为 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;
创建 UnityWebRequests
创建 DownloadHandlers