104 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.0 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
 | 
						|
            {
 | 
						|
                return JsonUtility.FromJson<T>(uwr.downloadHandler.text);
 | 
						|
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
}
 |