目前,只有一种类型的上传处理器可用:UploadHandlerRaw
。这个类在构造时接受一个数据缓冲区。这个缓冲区会内部复制到本地代码内存,并在远程服务器准备好接受正文数据时,由 UnityWebRequest
系统使用。
Upload Handlers 还接受一个内容类型字符串。如果未在 UnityWebRequest 上设置 Content-Type
头部,该字符串用于设定 UnityWebRequest 的 Content-Type
头部的值。如果您手动在 UnityWebRequest 对象上设置 Content-Type
头部, Upload Handler 对象上的 Content-Type
将被忽略。
如果既未在 UnityWebRequest 上也未在 UploadHandler
上设置 Content-Type
,系统默认设置为 application/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;