Hololens开发—unity中http请求,Gzip解压缩及json解析

25 篇文章 4 订阅
16 篇文章 1 订阅

Http请求

http可以用www和UnityWebRequest,但是www已经被弃用,建议使用UnityWebRequest;

直接上代码

        UnityWebRequest uwr = UnityWebRequest.Get("www.baidu.com"); //创建UnityWebRequest对象
        uwr.timeout = 20;
        yield return uwr.SendWebRequest();                                 
        if (uwr.isHttpError || uwr.isNetworkError)                         
        {
            print(uwr.error); //打印错误原因
        }
        else //请求成功
        {
            print("Get:请求成功");
        }

Gzip解压缩

由于我们的后台接口用了gzip压缩,所以没办法直接解析数据,需要先解压缩,找了几种压缩方式都不太好用,最后在用了框架中的方法,

库:using System.IO.Compression

            string str = "";//声明空字符串用来接收解压缩后的数据
            if (uwr.GetResponseHeader("Content-Encoding") != null && uwr.GetResponseHeader("Content-Encoding").ToLower().Equals("gzip"))
            {//判断是否被gzip压缩,是做解压缩操作,否直接接受text数据
                Stream ff = null;
                ff = new GZipStream(new MemoryStream(uwr.downloadHandler.data), CompressionMode.Decompress);
                using (StreamReader reader = new StreamReader(ff, Encoding.UTF8))
                {
                    str = reader.ReadToEnd();
                }
                print("Get:结果");
            }
            else
            {
                print("else");
                str = uwr.downloadHandler.text;
            }
            print(str);//输出解压缩后的字符串

Json解析

json解析时候遇到了坑,不知道什么原因直通过键值和数组index找到目标数据一直报错,后来我逐层解析才拿到数据,所以就数组和字典不要混合取值,多接几次数据就可以了。

        JsonData data = JsonMapper.ToObject(content);
        JsonData list = data["key1"]["key2"];
        print("list=" + list.Count);
        JsonData dic = list[0];
        print("dic=" + dic);
        JsonData listData = dic["key3"];
        print("listData=" + listData.Count);

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值