前言
最近需要用Unity做一款链接HTTP服务器的游戏,因此对自己所做的东西进行记录,方便自己以后观看
一、Get和Post请求
IEnumerator Get(string _url)
{
UnityWebRequest request = UnityWebRequest.Get(_url);
yield return request.SendWebRequest();
if (request.isHttpError || request.isNetworkError)
{
Debug.LogError(request.error);
}
else
{
string result = request.downloadHandler.text;
Debug.Log(result);
}
}
IEnumerator UnityWebRequestPost(string _url, string _json)
{
byte[] bytes = Encoding.UTF8.GetBytes(_json);
UnityWebRequest request = new UnityWebRequest(_url, UnityWebRequest.kHttpVerbPOST)
{
uploadHandler = new UploadHandlerRaw(bytes),
downloadHandler = new DownloadHandlerBuffer()
};
yield return request.SendWebRequest();
if (request.isHttpError || request.isNetworkError)
{
Debug.LogError(request.error);
}
else
{
string callstr = request.downloadHandler.text;
Debug.Log(callstr);
}
}
二、设置头文件的Get请求和Post请求
IEnumerator WebRequestGetHeader(string _url,Dictionary<string, string> HeadDic)
{
UnityWebRequest request = UnityWebRequest.Get(_url);
//设置头文件 及 token值
foreach(var head in HeadDic)
{
request.SetRequestHeader(head.Key, head.Value);
}
yield return request.SendWebRequest();
if (request.isHttpError || request.isNetworkError)
{
Debug.LogError(request.error);
}
else
{
string result = request.downloadHandler.text;
Debug.Log(result);
}
}
IEnumerator UnityWebRequestPost(string _url, string _json,Dictionary<string, string> HeadDic)
{
byte[] bytes = Encoding.UTF8.GetBytes(_json);
UnityWebRequest request = new UnityWebRequest(_url, UnityWebRequest.kHttpVerbPOST)
{
uploadHandler = new UploadHandlerRaw(bytes),
downloadHandler = new DownloadHandlerBuffer()
};
foreach (var head in HeadDic)
{
request.SetRequestHeader(head.Key, head.Value);
}
yield return request.SendWebRequest();
if (request.isHttpError || request.isNetworkError)
{
Debug.LogError(request.error);
}
else
{
string callstr = request.downloadHandler.text;
Debug.Log(callstr);
}
}
三、数据转换
数据类型转Json以及Json转对应数据类型数据
public string WirteToObject<T>(T frame1)
{
var deserializedUser = JsonUtility.ToJson(frame1);
return deserializedUser;
}
public T ReadToObject<T>(string json) where T : class,new()
{
T deserializedUser = new T();
deserializedUser = (T)JsonUtility.FromJson(json, deserializedUser.GetType());
return deserializedUser;
}
总结
感谢观看