Unity GET/POST请求
在Unity中进行简单的网络GET/POST请求使用现代的UnityWebRequest对象:UnityEngine.Networking.UnityWebRequest
对象操作
常用操作如:
SetRequestHeader(string name, string value)- 设置请求头SendWebRequest()- 开始请求
设置数据接收Buffer(通常用于自定义请求)1
2
3
4
5var request = new UnityWebRequest(url, "POST");
request.downloadHandler = new DownloadHandlerBuffer(); // 设置下载接收buffer
var uploadData = Encoding.UTF8.GetBytes("Data string");
request.uploadHandler = new UploadHandlerRaw(uploadData) // 设置数据负载,常用于POST请求若此处使用构造函数(如
UnityWebRequest.Get(url)则不需要手动设置Buffer和数据负载,通常需要在构造函数内部填写其所需的数据等。
开始请求
请求函数SendWebRequest需要使用yield进行协程调用
1 | public IEnumerator Get(url) { |
在上述代码中,request.result中的result属性标定的当前请求是否成功以及失败的原因(若请求失败),具体条目可在IDE中查找UnityWebRequest.Result。
获取请求得到的数据则是通过request.downloadHandler中的text字段获取。
若请求出现错误,则可以通过request.error来获取一段人类可读的请求错误原因字符串。