在之前的文章中,介绍了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值的传入