Unity - UnityWebRequest使用小記

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ǔ)全比較好。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容