114 lines
3.1 KiB
C#
114 lines
3.1 KiB
C#
using Cysharp.Threading.Tasks;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
|
|
public class HttpTool
|
|
{
|
|
/// <summary>
|
|
/// get
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="uri"></param>
|
|
/// <returns></returns>
|
|
public static async Task<T> GetJsonAsync<T>(string uri)
|
|
{
|
|
Debug.Log("akjsbd");
|
|
using (var uwr = UnityWebRequest.Get(uri))
|
|
{
|
|
await uwr.SendWebRequest();
|
|
if (uwr.isNetworkError)
|
|
{
|
|
Debug.LogError(uwr.error);
|
|
return default(T);
|
|
}
|
|
else
|
|
{
|
|
Debug.Log(JsonUtility.FromJson<T>(uwr.downloadHandler.text));
|
|
return JsonUtility.FromJson<T>(uwr.downloadHandler.text);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//if (uwr.result == UnityWebRequest.Result.Success)
|
|
// return JsonUtility.FromJson<T>(uwr.downloadHandler.text);
|
|
//else
|
|
//{
|
|
// Debug.LogError(uwr.error);
|
|
// return default(T);
|
|
//}
|
|
}
|
|
/// <summary>
|
|
/// Post±íµ¥
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="uri"></param>
|
|
/// <param name="keyValuePairs"></param>
|
|
/// <returns></returns>
|
|
public static async Task<T> PostFromAsync<T>(string uri, Dictionary<string, string> keyValuePairs)
|
|
{
|
|
WWWForm formData = new WWWForm();
|
|
foreach (var item in keyValuePairs)
|
|
{
|
|
formData.AddField(item.Key, item.Value);
|
|
}
|
|
using (var uwr = UnityWebRequest.Post(uri, formData))
|
|
{
|
|
await uwr.SendWebRequest();
|
|
if (uwr.isNetworkError)
|
|
{
|
|
Debug.LogError(uwr.error);
|
|
return default(T);
|
|
}
|
|
else
|
|
return JsonUtility.FromJson<T>(uwr.downloadHandler.text);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
/// <summary>
|
|
/// PostJson
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="uri"></param>
|
|
/// <param name="jsonObject"></param>
|
|
/// <returns></returns>
|
|
public static async Task<T> PostJsonAysnc<T>(string uri, object jsonObject)
|
|
{
|
|
var jsonString = JsonUtility.ToJson(jsonObject);
|
|
// Debug.Log(jsonString);
|
|
var postData = System.Text.Encoding.Default.GetBytes(jsonString);
|
|
using (var uwr = new UnityWebRequest(uri, "POST"))
|
|
{
|
|
uwr.SetRequestHeader("Content-type", "application/json");
|
|
uwr.uploadHandler = new UploadHandlerRaw(postData);
|
|
uwr.downloadHandler = new DownloadHandlerBuffer();
|
|
await uwr.SendWebRequest();
|
|
if (uwr.isNetworkError)
|
|
{
|
|
Debug.LogError(uwr.error);
|
|
return default(T);
|
|
}
|
|
else
|
|
{
|
|
//Debug.Log(uwr.downloadHandler.text+"£º·¢Ë͵½£º"+uwr );
|
|
return JsonUtility.FromJson<T>(uwr.downloadHandler.text);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|