Unity_Web/Assets/1_Script/System/NetworkManager.cs

84 lines
3.3 KiB
C#
Raw Blame History

using UnityEngine;
using BestHTTP;
using System;
using Newtonsoft.Json;
using MEC;
using System.Collections.Generic;
public class NetworkManager : SingletonMonoBehaviour<NetworkManager>
{
[SerializeField] private string baseUrl;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD> <20>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>մϴ<D5B4>. send()<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
/// </summary>
/// <typeparam name="T"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> Ÿ<><C5B8></typeparam>
/// <param name="API">api <20>ּ<EFBFBD></param>
/// <param name="onRequestFinished"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> ó<><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD></param>
/// <param name="serializeData"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, null<6C><6C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD>ϴ<EFBFBD>.</param>
/// <param name="methods"><3E><><EFBFBD>۹<EFBFBD><DBB9></param>
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> or <20><EFBFBD><E2BABB>(<28><>ȯ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)</returns>
public HTTPRequest CreateRequest<T>(string api, object serializeData, Action<T> onSuccess, Action<T> onFail = null, HTTPMethods methods = HTTPMethods.Post)
{
string url = $"{baseUrl}{api}".Replace("\\p{Z}", String.Empty);
var httpRquest = new HTTPRequest(new Uri(url) //url <20>ֱ<EFBFBD>
, methods //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20>ֱ<EFBFBD>
, (request, response) => {
if (response == null || (response.StatusCode != 200))
{
onFail?.Invoke(default(T));
}
else
{
T deSerialized = JsonConvert.DeserializeObject<T>(response.DataAsText);
onSuccess?.Invoke(deSerialized);
}
});
if (serializeData != null)
{
httpRquest.SetHeader("Content-Type", "application/json; charset=UTF-8");
string json = JsonConvert.SerializeObject(serializeData);
httpRquest.RawData = System.Text.Encoding.UTF8.GetBytes(json);
}
httpRquest.Send();
return httpRquest;
}
public HTTPRequest CreateImageRequest(string api, object serializeData, Action<Texture2D> onSuccess, Action<Texture2D> onFail = null, HTTPMethods methods = HTTPMethods.Post)
{
string url = $"{baseUrl}{api}".Replace("\\p{Z}", String.Empty);
var httpRquest = new HTTPRequest(new Uri(url) //url <20>ֱ<EFBFBD>
, methods //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20>ֱ<EFBFBD>
, (request, response) => {
if (response == null || (response.StatusCode != 200))
{
onFail?.Invoke(null);
}
else
{
Texture2D deSerialized = response.DataAsTexture2D;
onSuccess?.Invoke(deSerialized);
}
});
if (serializeData != null)
{
httpRquest.SetHeader("Content-Type", "application/json; charset=UTF-8");
string json = JsonConvert.SerializeObject(serializeData);
httpRquest.RawData = System.Text.Encoding.UTF8.GetBytes(json);
}
return httpRquest;
}
private IEnumerator<float> Sendearch()
{
//Timing.RunCoroutine(BuildingSet());
yield return Timing.WaitForSeconds(0.1f);
}
}