Unity中的UnityWebRequest

🏆 个人愚见,没事写写笔记

🏆《博客内容》:Unity3D开发内容

🏆🎉欢迎 👍点赞✍评论⭐收藏

🔎Unity中的HTTP编程

☀️Unity中的HTTP通信主要依赖的是Unity自带的UnityWebRequest类

UnityWebRequest封装了网络请求,支持http、https、file、ftp协议的请求以及处理。

UnityWebRequest 由三个元素组成:

  • UploadHandler 处理数据将数据发送到服务器的对象

  • DownloadHandler 从服务器接收数据的对象

  • UnityWebRequest 负责 HTTP 通信流量控制来管理上面两个对象的对象

 HTTP headers(头部)设置:请求头部经常用来设置请求的一些属性参数

request.SetRequestHeader("Content-Type", "application/json");//告诉服务器给我们返回json格式的数据
request.SetRequestHeader("Authorization", token);//有的而需要设置token

 通常我们用的比较多的是GET和POST方法。GET一般用来获取信息,POST一般用来向服务器上传信息,比如表单、文件等。

Get请求:
方法一:
 private IEnumerator UnityWebRequest_Get()
 {
     string url = "https://www.baidu.com";

     UnityWebRequest request = UnityWebRequest.Get(url);
     yield return request.SendWebRequest();

     if (request.result == UnityWebRequest.Result.Success)
     {
         Debug.Log(request.downloadHandler.text);
     }
     else
     {
         Debug.LogError(request.error);
     }
 }
方法二:
  private IEnumerator UnityWebRequest_Get()
  {
      string url = "https://www.baidu.com";

      UnityWebRequest request = new UnityWebRequest(url);
      request.downloadHandler = new DownloadHandlerBuffer();
      yield return request.SendWebRequest();

      if (request.result == UnityWebRequest.Result.Success)
      {
          Debug.Log(request.downloadHandler.text);
      }
      else
      {
          Debug.LogError(request.error);
      }
  }
Post请求:
 private IEnumerator UnityWebRequest_Post()
 {
     string url = "上传的地址";
     UnityWebRequest request = new UnityWebRequest(url, "POST");
     byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
     request.uploadHandler = new UploadHandlerRaw(postBytes);
     request.downloadHandler = new DownloadHandlerBuffer();
     yield return request.SendWebRequest();
     if (request.result == UnityWebRequest.Result.Success)
     {
         Debug.Log(request.downloadHandler.text);
     }
     else
     {
         Debug.LogError(request.error);
     }
 }
上传from表单:
 private IEnumerator UnityWebRequest_Post()
 {
     string url = "上传的地址";
     WWWForm form = new WWWForm();

     form.AddBinaryData("key", buffer);
     form.AddField("key", "value");
     UnityWebRequest request = UnityWebRequest.Post(url, form);
     yield return request.SendWebRequest();
     if (request.result == UnityWebRequest.Result.Success)
     {
         Debug.Log(request.downloadHandler.text);
     }
     else
     {
         Debug.LogError(request.error);
     }
 }

🚀感谢:🎉欢迎 👍点赞✍评论⭐收藏

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值