Unity的WWW请求的几种方式解析
通过剖析Unity发现: Unity中WWW的web请求方式其实都是通过UnityWebRequest来实现的
private UnityWebRequest _uwr;
一.WWW的Get请求实现:
public WWW(string url)
{
_uwr = UnityWebRequest.Get(url);
_uwr.SendWebRequest();
}
二.WWW的Post请求实现:
1.WWWForm表单:
public WWW(string url, WWWForm form)
{
_uwr = UnityWebRequest.Post(url, form);
_uwr.chunkedTransfer = false;
_uwr.SendWebRequest();
}
2.byte数组:
public WWW(string url, byte[] postData)
{
_uwr = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST);
_uwr.chunkedTransfer = false;
UploadHandler formUploadHandler = new UploadHandlerRaw(postData);
formUploadHandler.contentType = "application/x-www-form-urlencoded";
_uwr.uploadHandler = formUploadHandler;
_uwr.downloadHandler = new DownloadHandlerBuffer();
_uwr.SendWebRequest();
}
public WWW(string url, byte[] postData, Dictionary<string, string> headers)
{
var verb = postData == null ? UnityWebRequest.kHttpVerbGET : UnityWebRequest.kHttpVerbPOST;
_uwr = new UnityWebRequest(url, verb);
_uwr.chunkedTransfer = false;
UploadHandler formUploadHandler = new UploadHandlerRaw(postData);
formUploadHandler.contentType = "application/x-www-form-urlencoded";
_uwr.uploadHandler = formUploadHandler;
_uwr.downloadHandler = new DownloadHandlerBuffer();
foreach (var header in headers)
_uwr.SetRequestHeader(header.Key, header.Value);
_uwr.SendWebRequest();
}