Unity逐漸放棄WWW的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送的API,轉(zhuǎn)而推薦使用UnityWebRequest,參考官網(wǎng)教程(https://docs.unity3d.com/Manual/UnityWebRequest.html)
其基礎(chǔ)結(jié)構(gòu)如下圖

image.png
傳送數(shù)據(jù)的使用
private IEnumerator DoUpload(string url, string data)
{
using (var _inputStream = new MemoryStream())
{
var _data = System.Text.Encoding.UTF8.GetBytes(data);
var gZip = new System.IO.Compression.GZipStream(_inputStream, System.IO.Compression.CompressionMode.Compress);
gZip.Write(_data, 0, _data.Length);
gZip.Close();
var uploadData = Convert.ToBase64String(_inputStream.ToArray());
if (null != uploadData && uploadData.Length > 0)
{
using (var webRequest = UnityEngine.Networking.UnityWebRequest.Put(url, uploadData))
{
yield return webRequest.SendWebRequest();
if (webRequest.isNetworkError || webRequest.isHttpError)
{
Debug.LogError("webRequest: error => " + webRequest.error);
}
}
}
gZip.Dispose();
}
使用:
private void Awake()
{
StartCoroutine(DoUpload("<url>", "test data"));
}
使用時(shí)自己把自己坑了一把,使用的url直接使用了不帶http://前綴的地址,結(jié)果在Editor下面正常使用,打包在A(yíng)ndroid中說(shuō)URL格式錯(cuò)誤,暫時(shí)還沒(méi)有深究這個(gè)差別,不過(guò)以后長(zhǎng)個(gè)教訓(xùn),還是補(bǔ)全比較好。