84 lines
3.3 KiB
C#
84 lines
3.3 KiB
C#
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);
|
||
}
|
||
}
|