E_ElecCompetition/Electrical_inspectionCompet.../Assets/Script/GameManager/HttpTool.cs

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