UnityWebRequest

대인공·2022년 11월 17일
0

Unity

목록 보기
11/14
post-thumbnail

웹 서버와의 HTTP통신을 처리하기 위해 사용한다. 지속적인 연결이 필요한 작업이 아닌 단발성 연결이 필요한 작업에 사용된다.

클라이언트에서 웹 서버에 요청하면 서버에서 처리 후, 클라이언트에게 요청한 것을 다시 전송한다.

using UnityEngine.Networking;
//을 선언해야 사용 가능하다.


통신방식

전달하는 방식에서 두가지로 나뉜다.


1. Get

using(UnityWebRequest request = UnityWebRequest.Get(string))
{
	//...
}

- 요청할 데이터의 정보를 주소에 담아서 전송하는 방식
- parameter에 요청하려는 데이터의 string 타입의 url을 입력한다.


2. Post

using(UnityWebRequest request = UnityWebRequest.Post(string, string))
{
	//...
}

- 요청할 데이터의 정보를 HTTP헤더를 통해 전송하기 때문에 주소에서 드러나지 않는다.
- parameter는 순서대로 url, 전송하려는 data이다.
- data를 전송할 때는 string형 그대로 전송하기보다 byte배열로 변환후 전송하여야 한다.


3. Put

using(UnityWebRequest request = UnityWebRequest.Put(string, byte[]))
{
	//...
}

- 데이터를 서버에 업로드하는 메소드 이다.
- parameter는 순서대로 url, 전송하려는 data이다.
- 반드시 byte[]배열로 변환 후 전달하여야 한다.



Properties

서버로부터 전송된 파일 다운로드, 헤더설정등 여러 메소드가 있다. 여기서는 간단히만 알아보고 나머지는 아래 참조을 보면 다양한 메소드들이 많다.


1. Download_

  1. DownloadedBytes()
    - 서버로부터 다운로드 된 데이터의 byte배열의 크기를 반환하는 메소드

  2. DownloadHandler()
    - 서버로부터 다운로드 된 데이터를 관리하는 메소드
    - 반환값으로 다운로드 된 데이터를 반환

  3. DownloadProgress() (Read Only)
    - 서버에서 다운로드 되고 있는 진행률을 반환하는 메소드


2. _Header

  1. GetRequestHeader(string)
    - 사용자 지정 헤더를 검색하는 메소드
    - 반환값으로 일치하는 헤더가 없을경우 null을 반환, 있을 경우 값을 반환

  2. GetResponseHeader(string)
    - 제일 최근 통신에서 헤더를 검색하는 메소드
    - 반환값으로 일치하는 헤더가 없거나 수신이 없다면 null을 반환, 있을 경우 값을 반환

  3. GetGetResponseHeaders()
    - 제일 최근 통신에서 모든 헤더와 값을 반환하는 메소드
    - Dictionary<string,string>형식

  4. SetRequestHeader(string, string)
    - 사용자 지정 헤더를 추가하는 메소드
    - 전달되는 메개변수는 순서대로 '헤더명' , '값'을 작성
    - 헤더명으로 권장하지 않는 문구가 있다.


3. Send

  • SendWebRequest
    - UnityWebRequest로 지정된 서버와 통신을 시작하는 매소드
    - UnityWebRequest에서 한번만 호출 가능하다.
    - 코루틴 내에서 사용시 통신이 완료될 때까지 코루틴이 일시 정지 상태가 된다.

참조 : https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.html

profile
이제 막 시작하는 유니티 클라이언트

0개의 댓글