赞
踩
前言
本插件目前只支持返回值有公共外部参数的使用,不带公共外部参数的后续会更新。
安装说明
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请求:
- HttpTool.Instance.Get<请求的数据格式>("url", data =>
- {
- Debug.Log("获得的数据列表:" + data.data);
- }, 是否需要token);
6、Post请求:
- HttpTool.Instance.Post<请求的数据格式>("url",
- new
- {
- 参数
- }
- ,data =>
- {
- Debug.Log("获得的数据列表:" + data.data);
- }, 是否需要token);
7、Put请求:
- HttpTool.Instance.Put<请求的数据格式>("url",
- new
- {
- 参数
- }
- ,data =>
- {
- Debug.Log("获得的数据列表:" + data.data);
- }, 是否需要token);
8、下载资源(文件未建立):
- HttpTool.Instance.DownloadFile<请求的数据格式>("url","下载路径","文件名", float loadnum =>
- {
- Debug.Log("下载进度:" + loadnum);
- }, 是否需要token);
9、下载资源(文件已建立):
- HttpTool.Instance.DownloadFile<请求的数据格式>("url","文件下载路径", float loadnum =>
- {
- Debug.Log("下载进度:" + loadnum);
- }, 是否需要token);
主要逻辑实现
以post请求为例,其他请求使用方式类似,使用unity提供http请求接口UnityWebRequest,逻辑代码如下
- private IEnumerator PostRequest<T>(string url, dynamic jsonString, Action<ResponseResult<T>> callback, bool needToken = true)
- {
- using (UnityWebRequest webRequest = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST))
- {
- byte[] bodyRaw = Encoding.UTF8.GetBytes(JsonMapper.ToJson(jsonString));
- webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);
- webRequest.downloadHandler = new DownloadHandlerBuffer();
- webRequest.timeout = 10;
- this.SetHeader(webRequest, needToken);
- yield return webRequest.SendWebRequest();
-
- #if UNITY_2020_1_OR_NEWER
- if (webRequest.result == UnityWebRequest.Result.ConnectionError)
- # elif UNITY_2017_1_OR_NEWER
- if (webRequest.isHttpError || webRequest.isNetworkError)
- #endif
- {
- YBFile.Log(webRequest.error + "\n" + webRequest.downloadHandler.text);
- if (callback != null)
- {
- callback(null);
- }
- }
- else
- {
- if (callback != null)
- {
- if (JsonMapper.ToObject<ResponseResult<T>>(webRequest.downloadHandler.text) == null)
- {
- YBFile.Log("数据返回值为空");
- }
- else
- {
- string requestText = webRequest.downloadHandler.text;
- YBFile.Log("url = " + url + ", jsonString = " + jsonString + ", 返回值 = " + requestText);
-
- callback(JsonMapper.ToObject<ResponseResult<T>>(requestText));
- }
- }
- }
- }
- }
更多好用插件会陆续更新,如有插件优化,或者更多好推荐,烦请大佬们友情指出
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。