* 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;
}
}
}
출처
'Unity > Web Server' 카테고리의 다른 글
| [Web Server] 섹션 3. 고급 C# 문법 - 12. LINQ #2 (0) | 2025.10.09 |
|---|---|
| [Web Server] 섹션 3. 고급 C# 문법 - 12. LINQ #1 (1) | 2025.09.28 |
| [Web Server] 섹션 3. 고급 C# 문법 - 11. Async, Await (0) | 2025.09.07 |
| [Web Server] 섹션 2. 웹 기초 - 3. 환경 설정 (0) | 2025.08.24 |