웹 서버와의 HTTP통신을 처리하기 위해 사용한다. 지속적인 연결이 필요한 작업이 아닌 단발성 연결이 필요한 작업에 사용된다.
클라이언트에서 웹 서버에 요청하면 서버에서 처리 후, 클라이언트에게 요청한 것을 다시 전송한다.
using UnityEngine.Networking;
//을 선언해야 사용 가능하다.
전달하는 방식에서 두가지로 나뉜다.
using(UnityWebRequest request = UnityWebRequest.Get(string))
{
//...
}
- 요청할 데이터의 정보를 주소에 담아서 전송하는 방식
- parameter에 요청하려는 데이터의 string 타입의 url을 입력한다.
using(UnityWebRequest request = UnityWebRequest.Post(string, string))
{
//...
}
- 요청할 데이터의 정보를 HTTP헤더를 통해 전송하기 때문에 주소에서 드러나지 않는다.
- parameter는 순서대로 url, 전송하려는 data이다.
- data를 전송할 때는 string형 그대로 전송하기보다 byte배열로 변환후 전송하여야 한다.
using(UnityWebRequest request = UnityWebRequest.Put(string, byte[]))
{
//...
}
- 데이터를 서버에 업로드하는 메소드 이다.
- parameter는 순서대로 url, 전송하려는 data이다.
- 반드시 byte[]배열로 변환 후 전달하여야 한다.
서버로부터 전송된 파일 다운로드, 헤더설정등 여러 메소드가 있다. 여기서는 간단히만 알아보고 나머지는 아래 참조을 보면 다양한 메소드들이 많다.
DownloadedBytes()
- 서버로부터 다운로드 된 데이터의 byte배열의 크기를 반환하는 메소드
DownloadHandler()
- 서버로부터 다운로드 된 데이터를 관리하는 메소드
- 반환값으로 다운로드 된 데이터를 반환
DownloadProgress() (Read Only)
- 서버에서 다운로드 되고 있는 진행률을 반환하는 메소드
GetRequestHeader(string)
- 사용자 지정 헤더를 검색하는 메소드
- 반환값으로 일치하는 헤더가 없을경우 null을 반환, 있을 경우 값을 반환
GetResponseHeader(string)
- 제일 최근 통신에서 헤더를 검색하는 메소드
- 반환값으로 일치하는 헤더가 없거나 수신이 없다면 null을 반환, 있을 경우 값을 반환
GetGetResponseHeaders()
- 제일 최근 통신에서 모든 헤더와 값을 반환하는 메소드
- Dictionary<string,string>형식
SetRequestHeader(string, string)
- 사용자 지정 헤더를 추가하는 메소드
- 전달되는 메개변수는 순서대로 '헤더명' , '값'을 작성
- 헤더명으로 권장하지 않는 문구가 있다.
참조 : https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.html