728x90
public class WebManager : MonoBehaviour
{
enum Method
{
POST,
GET,
UPDATE,
DELETE
}
string _baseUrl = "https://localhost:44351/api";
void Start()
{
TestResult res = new TestResult()
{
UserName = "tkddls",
Score = 1,
};
SendPostRequest("ranking", res, (uwr) =>
{
Debug.Log("post 호출");
});
SendGetAllRequest("ranking", (uwr) =>
{
Debug.Log("get 호출");
});
}
public void SendPostRequest(string url, object obj, Action<UnityWebRequest> callback)
{
StartCoroutine(CosendWebRequest(url, Enum.GetName(typeof(Method),Method.POST), obj, callback));
}
public void SendGetAllRequest(string url, Action<UnityWebRequest> callback)
{
StartCoroutine(CosendWebRequest(url, Enum.GetName(typeof(Method), Method.GET), null, callback));
}
IEnumerator CosendWebRequest(string url, string method, object obj, Action<UnityWebRequest> callback)
{
string sendUrl = $"{_baseUrl}/{url}/";
byte[] jsonByte = null;
if (obj != null)
{
string jsonStr = JsonUtility.ToJson(obj);
jsonByte = Encoding.UTF8.GetBytes(jsonStr);
}
var uwr = new UnityWebRequest(sendUrl, method);
uwr.uploadHandler = new UploadHandlerRaw(jsonByte);
uwr.downloadHandler = new DownloadHandlerBuffer();
uwr.SetRequestHeader("Content-Type", "application/json");
yield return uwr.SendWebRequest();
if (uwr.result != UnityWebRequest.Result.Success)
{
Debug.Log(uwr.result);
}
else
{
Debug.Log(uwr.downloadHandler.text);
callback.Invoke(uwr);
}
}
}
728x90
'Unity' 카테고리의 다른 글
[Unity] 유니티 Editor 만드는 방법 (0) | 2022.11.14 |
---|---|
[Unity2D] Collision(충돌) 위치 받는 방법 (0) | 2022.11.14 |
[Unity][방법][팁] Conditional사용하여 로그(LOG)사용하기 (0) | 2022.10.20 |
[Unity][팁, 방법] 애니메이션 파라미터 사용하지 않고 소스 제어 (0) | 2022.10.13 |
[Unity][방법] AI 길찾기 사용방법 (0) | 2022.10.10 |