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请求:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值