一些现代Web应用程序喜欢通过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("https://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!");
}
}
}