모바일 디바이스용 네트워킹 팁(Networking Tips for Mobile devices)
UnityWebRequest-HLAPI

UnityWebRequest

UnityWebRequest provides a modular system for composing HTTP requests and handling HTTP responses. The primary goal of the UnityWebRequest system is to allow Unity games to interact with Web back-ends. It also supports high-demand features such as chunked HTTP requests, streaming POST/PUT operations, and full control over HTTP headers and verbs.

시스템은 다음과 같이 두 레이어로 구성됩니다.

  • 고급 레벨 API(HLAPI)는 저수준 API를 래핑하고 일반 작업을 수행하기 위한 편리한 인터페이스를 제공합니다.
  • 낮은 레벨 API(LLAPI)는 더 많은 고급 사용자를 위해 최대한의 유연성을 제공합니다.

이러한 레이어에 대해 자세히 알아보려면 이 섹션에 포함된 다음 페이지를 참조하십시오.

지원되는 플랫폼

UnityWebRequest 시스템은 대부분의 Unity 플랫폼을 다음과 같이 지원합니다.

  • All versions of the Editor & Standalone players
  • WebGL
  • Mobile Platforms: iOS, Android, Windows Phone 8
  • Windows Store Apps
  • PS3
  • Xbox 360

아키텍처

UnityWebRequest 생태계에서 HTTP 트랜잭션을 다음과 같이 세 단계의 작업으로 분리합니다.

  • 서버에 데이터 제공
  • 서버에서 데이터 수신
  • HTTP 플로우 컨트롤(예: 리디렉트 및 오류 처리)

이러한 작업은 고급 사용자에게 더 나은 인터페이스를 제공하기 위해 다음과 같이 각각의 자체 오브젝트를 통해 관리됩니다.

  • UploadHandler 오브젝트는 서버로의 데이터 송신을 담당합니다
  • DownloadHandler 오브젝트는 서버에서의 데이터 수신, 버퍼링 및 포스트 프로세스를 담당합니다
  • UnityWebRequest 오브젝트는 위의 두 오브젝트를 관리하고, HTTP 플로우 컨트롤을 담당합니다. 이 오브젝트에서는 커스텀 헤더와 URL이 정의되며, 오류및 리디렉트 정보가 저장됩니다.

모든 HTTP 트랜잭션의 일반 코드 플로우는 다음과 같습니다.

  • 웹 요청 오브젝트 생성
  • 웹 요청 오브젝트 설정
    • 커스텀 헤더 설정
    • Set HTTP verb (such as GET, POST, HEAD. Custom verbs are permitted on all platforms except for Android.)
    • URL 설정
  • (Optional) Create an Upload Handler & attach it to the Web Request
    • 업로드할 데이터 제공
    • 업로드할 HTTP 양식 제공
  • (Optional) Create a Download Handler & attach it to the Web Request
  • 웹 요청 보내기
    • If inside a coroutine, you may Yield the result of the Send() call to wait for the request to complete.
  • (선택) 다운로드 핸들러에서 수신한 데이터 읽기
  • (선택) UnityWebRequest 오브젝트에서의 오류 정보, HTTP 상태 코드 및 리스폰스 헤더 읽기
모바일 디바이스용 네트워킹 팁(Networking Tips for Mobile devices)
UnityWebRequest-HLAPI