UnityWebRequest-请求时带入头文件

在之前的文章中,介绍了Unity中的Get请求和Post请求,本章简单介绍一下在Get和Post请求时,如何传入头文件的键值。

事实上根据不同的项目要求,对接口的要求也不一样,本人之前在做项目时,后台就返回了一个Token及值信息,大家可以把它理解为身份令牌,就像人的身份证一样,有且仅有一个,头文件在其中也扮演了很重要的角色,有时候为了数据更加安全,学生除了账号和密码登录之外,还有该Token值,当我们利用接口进行Get或Post请求时,除了传入参数外,还需要将此Token值传入才能正确获取我们想要的数据信息。
在这里插入图片描述
这里需要和后台配合才能进行测试,所以此处只介绍怎么用:
使用此函数时需要引用以下命名空间:

using System.Collections;
using UnityEngine.Networking;
using System.Text;
using System.Collections.Generic;

Get请求:

    IEnumerator WebRequestGetHeader(string _url,string _head,string _token)
    {
    
    
        UnityWebRequest request = UnityWebRequest.Get(_url);

        //设置头文件 及 token值
        request.SetRequestHeader(_head, _token);
        yield return request.SendWebRequest();
        if (request.isHttpError || request.isNetworkError)
        {
    
    
            Debug.LogError(request.error);
        }
        else
        {
    
    
            string result = request.downloadHandler.text;
            Debug.Log(result);
        }
    }

与普通的Get请求唯一的区别就是使用request.SetRequestHead()API进行了设置

Post请求(表单):

    IEnumerator UnityWebRequestPost(string _url, Dictionary<string, string> _dic, string _head, string _token)
    {
    
    
        WWWForm form = new WWWForm();
        foreach (var item in fromDic)
        {
    
    
            form.AddField(item.Key, item.Value);
        }
        UnityWebRequest request = UnityWebRequest.Post(url, form);
        request.SetRequestHeader(_head, _token);
        yield return request.SendWebRequest();
        if (request.isHttpError || request.isNetworkError)
        {
    
    
            Debug.LogError(request.error);
        }
        else
        {
    
    
            string result = request.downloadHandler.text;
            Debug.Log(result);
        }
    }

Post请求(Json):

    IEnumerator UnityWebRequestPost(string _url, string _jsonStr, string _head, string _token)
    {
    
    
        byte[] bytes = Encoding.UTF8.GetBytes(_jsonStr);
        UnityWebRequest request = new UnityWebRequest(_url, UnityWebRequest.kHttpVerbPOST)
        {
    
    
            uploadHandler = new UploadHandlerRaw(bytes),
            downloadHandler = new DownloadHandlerBuffer()
        };
        request.SetRequestHeader(_head, _token);
        request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");
        yield return request.SendWebRequest();
        if (request.isHttpError || request.isNetworkError)
        {
    
    
            Debug.LogError(request.error);
        }
        else
        {
    
    
            string result = request.downloadHandler.text;
            Debug.Log(result);
        }
    }

以上就是Unity在Get或Post请求时头文件及Token值的传入

猜你喜欢

转载自blog.csdn.net/weixin_38484443/article/details/117434926