当前位置:   article > 正文

Unity HTTP请求插件免费下载,使用简单,可自定义参数格式_unity http插件

unity http插件

前言

本插件目前只支持返回值有公共外部参数的使用,不带公共外部参数的后续会更新。

安装说明

1、烦请在 【https://gitee.com/jacobkay/Unity-Z-HttpTool】中下载

2、将文件夹直接拖入到工程中

使用说明

1、引用ZTools命名空间

2、在DataRequest中设置好自己需要的返回值公共的外部数据格式类型,主要的数据类型以泛型实现

3、如需要Token,设置方法:

HttpTool.Instance.Token = "123";

4、设置超时时间,单位秒:

HttpTool.Instance.TimeOut = 10;

5、Get请求:

  1. HttpTool.Instance.Get<请求的数据格式>("url", data =>
  2. {
  3. Debug.Log("获得的数据列表:" + data.data);
  4. }, 是否需要token);

6、Post请求:

  1. HttpTool.Instance.Post<请求的数据格式>("url",
  2. new
  3. {
  4. 参数
  5. }
  6. ,data =>
  7. {
  8. Debug.Log("获得的数据列表:" + data.data);
  9. }, 是否需要token);

7、Put请求

  1. HttpTool.Instance.Put<请求的数据格式>("url",
  2. new
  3. {
  4. 参数
  5. }
  6. ,data =>
  7. {
  8. Debug.Log("获得的数据列表:" + data.data);
  9. }, 是否需要token);

8、下载资源(文件未建立):

  1. HttpTool.Instance.DownloadFile<请求的数据格式>("url","下载路径","文件名", float loadnum =>
  2. {
  3. Debug.Log("下载进度:" + loadnum);
  4. }, 是否需要token);

9、下载资源(文件已建立):

  1. HttpTool.Instance.DownloadFile<请求的数据格式>("url","文件下载路径", float loadnum =>
  2. {
  3. Debug.Log("下载进度:" + loadnum);
  4. }, 是否需要token);

主要逻辑实现

以post请求为例,其他请求使用方式类似,使用unity提供http请求接口UnityWebRequest,逻辑代码如下

  1. private IEnumerator PostRequest<T>(string url, dynamic jsonString, Action<ResponseResult<T>> callback, bool needToken = true)
  2. {
  3. using (UnityWebRequest webRequest = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST))
  4. {
  5. byte[] bodyRaw = Encoding.UTF8.GetBytes(JsonMapper.ToJson(jsonString));
  6. webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);
  7. webRequest.downloadHandler = new DownloadHandlerBuffer();
  8. webRequest.timeout = 10;
  9. this.SetHeader(webRequest, needToken);
  10. yield return webRequest.SendWebRequest();
  11. #if UNITY_2020_1_OR_NEWER
  12. if (webRequest.result == UnityWebRequest.Result.ConnectionError)
  13. # elif UNITY_2017_1_OR_NEWER
  14. if (webRequest.isHttpError || webRequest.isNetworkError)
  15. #endif
  16. {
  17. YBFile.Log(webRequest.error + "\n" + webRequest.downloadHandler.text);
  18. if (callback != null)
  19. {
  20. callback(null);
  21. }
  22. }
  23. else
  24. {
  25. if (callback != null)
  26. {
  27. if (JsonMapper.ToObject<ResponseResult<T>>(webRequest.downloadHandler.text) == null)
  28. {
  29. YBFile.Log("数据返回值为空");
  30. }
  31. else
  32. {
  33. string requestText = webRequest.downloadHandler.text;
  34. YBFile.Log("url = " + url + ", jsonString = " + jsonString + ", 返回值 = " + requestText);
  35. callback(JsonMapper.ToObject<ResponseResult<T>>(requestText));
  36. }
  37. }
  38. }
  39. }
  40. }

更多好用插件会陆续更新,如有插件优化,或者更多好推荐,烦请大佬们友情指出

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号