Unity / UnityWebRequest 정리

김재섭·2022년 10월 6일
1
post-thumbnail

UnityWebRequest

사용할수있는 method는 GET, POST, PUT, DELETE 가 있다.

_
UnityWebRequest의 흐름은 쉽게 말하면 이렇다.

request -> response
1.request: 클라이언트에서 URL에 정보를 요청한다.
2.response: 해당 url에서 클라이언트로 요청한 정보를 응답해준다.

우리는 그 받은 정보를 쓸 수 있게 파싱해서 사용한다.

_
응답이 툭치면 나오는게 아니라, 요청을 보내면 응답이 올때까지 기다려야 되기 때문에,
일반적인 함수가 아니라 코루틴이나 비동기를 사용한다.

아래의 예시는 내가 post를 사용할 때 썼던 코드들이다.

  StartCoroutine(SendPost(serverUrl, param, (callback) =>
        {
            Debug.Log(callback);
        }
    private IEnumerator SendPost(string url, string parameter, Action<string> callback)
    {
        using (UnityWebRequest request = UnityWebRequest.Post(url, parameter))
        {
            byte[] jsonToSend = new UTF8Encoding().GetBytes(parameter);

            request.uploadHandler.Dispose();
            request.uploadHandler = new UploadHandlerRaw(jsonToSend);
            request.SetRequestHeader("Content-Type", "application/json");

            yield return request.SendWebRequest();

            if (request.result == UnityWebRequest.Result.Success)
            {
                callback(request.downloadHandler.text.Replace('{', ' ').Replace('}', ' ').Replace('"', ' '));
            }
            else
            {
                Debug.LogError("Failed");
                callback("Error");
            }
        }
    }
profile
Unity C#

0개의 댓글