美文网首页
Unity - UnityWebRequest使用小记

Unity - UnityWebRequest使用小记

作者: Francis_Rose | 来源:发表于2019-10-09 14:19 被阅读0次

    Unity逐渐放弃WWW的网络数据发送的API,转而推荐使用UnityWebRequest,参考官网教程(https://docs.unity3d.com/Manual/UnityWebRequest.html
    其基础结构如下图

    image.png

    传送数据的使用

    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"));
    }
    

    使用时自己把自己坑了一把,使用的url直接使用了不带http://前缀的地址,结果在Editor下面正常使用,打包在Android中说URL格式错误,暂时还没有深究这个差别,不过以后长个教训,还是补全比较好。

    相关文章

      网友评论

          本文标题:Unity - UnityWebRequest使用小记

          本文链接:https://www.haomeiwen.com/subject/tlssyctx.html