using UnityEngine; using BestHTTP; using System; using Newtonsoft.Json; using BestHTTP.JSON; public class NetworkManager : SingletonMonoBehaviour { [SerializeField] private string _baseUrl; [SerializeField] private string _baseEndpoint; public string baseUrl { get { return _baseUrl; } } /// /// µ¥ÀÌÅ͸¦ ¼Û¼ö½ÅÇØ¾ßÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. send()´Â »ý¼ºÀ» ¸¶Ä¡°í ÀÚµ¿À¸·Î º¸³À´Ï´Ù. /// /// ¿ªÁ÷·ÄÈ­ÇÒ Å¸ÀÔ /// api ÁÖ¼Ò /// µ¥ÀÌÅÍ ¹ÞÀº ÈÄ Ã³¸®ÇÒ ÀýÂ÷ /// Àü¼ÛÇÒ µ¥ÀÌÅÍ, null·Î ³ÖÀ¸¸é ¾Èº¸³À´Ï´Ù. /// µ¿ÀÛ¹æ½Ä /// ¿ªÁ÷·ÄÈ­µÈ µ¥ÀÌÅÍ or ±âº»°ª(¹Ýȯ ¹ÞÁö ¸øÇÔ) public HTTPRequest CreateRequest(string api, object serializeData, Action onSuccess, Action onFail = null, HTTPMethods methods = HTTPMethods.Post) { string url = $"{_baseUrl}/{_baseEndpoint}/{api}".Replace("\\p{Z}", String.Empty); var httpRquest = new HTTPRequest(new Uri(url) //url ³Ö±â , methods //µ¿ÀÛ ¹æ½Ä ³Ö±â , (request, response) => { if (response == null || (response.StatusCode != 200)) { onFail?.Invoke(default(T)); } else { T deSerialized = JsonConvert.DeserializeObject(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); } return httpRquest; } /// /// Texture2D Åë½Å¿ë ÇÔ¼ö /// /// /// /// /// /// /// public HTTPRequest CreateImageRequest(string api, object serializeData, Action onSuccess, Action onFail = null, HTTPMethods methods = HTTPMethods.Post) { string url = $"{_baseUrl}/{_baseEndpoint}/{api}".Replace("\\p{Z}", String.Empty); var httpRquest = new HTTPRequest(new Uri(url) //url ³Ö±â , methods //µ¿ÀÛ ¹æ½Ä ³Ö±â , (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; } }