[Web Server] HTTP 서버통신 및 API 사용방법

* HTTP 통신이란?

비동기적인 통신이다.

ex) 온라인게임처럼 여러명이 실시간 소통하는 서버가 아니라,

각각의 pc에서 필요한 정보만 웹서버에 요청하면, 웹서버에서 응답을 보내주는 비동기적인 서버통신이다.

 

 

* 유니티에서 HTTP 통신을 하는 방법은 2가지가 있다.

1. WWW 방식

2. UnityWebRequest 방식 => 최신 방법이고, WWW 방식에서 사용할 수 있는 기능을 모두 사용할 수 있다.

 

 

* HTTP 통신을 할 때 주의해야할 사항

1. 코루틴을 사용해야한다.

 : 코루틴을 사용하지 않으면 요청을 보내고 처리하고 응답이 오는데까지 걸리는 시간동안 프로그램이 멈춘다.

2. using문을 사용하는 경우가 있다.

 : 스크립트 상단에 네임스페이스 추가할 때 쓰는 using문 말하는 거 아니고, 스크립트 중간에 있는 것을 말하는 거다.

웹서버를 통해 다양한 리소스가 왔다갔다 할텐데, using문을 사용하면 필요없어질 때 자동으로 dispose해줘서 리소스 관리에 용이하다.

 

 

* 사용예시

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

public class WebRequest : MonoBehaviour
{
    private void Start()
    {
        StartCoroutine(UnityWebRequestGet());
    }

    IEnumerator UnityWebRequestGet()
    {
        string url = "https://api.neople.co.kr/df/servers?apikey=VDAVlX4BJrUp6Mj7gXkpDETbhTuUuI7V";
     
        UnityWebRequest www = UnityWebRequest.Get(url);

        yield return www.SendWebRequest();

        if(www.result != UnityWebRequest.Result.Success)
        {
            Debug.Log(www.error);
        }
        else
        {
            // Show results as text
            Debug.Log(www.downloadHandler.text);
            // Or retrieve results as binary data
            byte[] results = www.downloadHandler.data;
        }
    }
}

 

 

 

출처

[유니티] HTTP 서버통신 및 API 사용방법