본문 바로가기
Programming/Unity

[Unity3D] 웹 데이터 파일 다운로드,업로드(GET, POST) 및 저장 (UnityWebRequest)

by 타임박스 2021. 3. 16.
반응형


✔ 인터넷 파일 다운로드 및 저장 Get , Post

UnityWebRequest, WWW Class, 



인터넷에 URL을 통해 다운로드한 파일을 로컬로 저장하는 방법입니다.

인터넷 URL을 통해 데이터를 얻어올때에는 UnityWebRequst 클래스를 사용하여 불러옵니다.

(구 버전은 WWW 클래스)

UnityWebRequest 클래스는 UnityEngine.Networingusing해야합니다.

UnityWebRequest 클래스에는 Get , Post 방식 모두 포함되어 있습니다.

 

Get 방식의 테스트 샘플 예제

해더정보가 필수적으로 들어갈 경우에는 SetRequestHeader(string,string) 을 통해 해더정보를 포함하여 요청한다.

using System.IO;
using UnityEngine;
using UnityEngine.Networking;

public class Test : MonoBehaviour 
{
    string FilePath = "c:\파일.dwg";
    
    void Start()
    {
       StartCoroutine(DownLoadGet("https://파일 다운로드 URL"));
    }
    
    public IEnumerator DownLoadGet(string URL)
    {
    	
        UnityWebRequest request = UnityWebRequest.Get(URL);
        //해더 정보 필요시
        //request.SetRequestHeader("key", "timebox");
        
        yield return request.SendWebRequest();

		//에러 발생시
        if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError )
        {
            Debug.Log(request.error);
        }
        else
        {
        	//다운로드 데이터를 파일로 저장
            File.WriteAllBytes(FilePath, request.downloadHandler.data); 
        }
    }
}

 

● Post 방식 샘플 예제

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

public class TestPost : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(Login());
    }

    IEnumerator Login()
    {
        WWWForm form = new WWWForm();
        form.AddField("User", "KIM");
        form.AddField("PASS", "1234");

        using (UnityWebRequest www = UnityWebRequest.Post("http://URL", form))
        {
            yield return www.SendWebRequest();

			//에러 발생시
            if (www.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(www.error);
            }
            else
            {
                //완료 처리
            }
        }
    }
}

 

json 데이터 전송 및 업로드의 다양한 응용방법은 아래 포스트를 참조해주세요.

2021.04.21 - [Programming/Unity] - [Unity] UnityWebRequest로 json 데이터를 Http body에 Post로 전달방법

 

[Unity] UnityWebRequest로 json 데이터를 Http body에 Post로 전달방법

✔ Post raw json into UnityWebRequest JsonUtility, Convert json from object Http 서버 body에 Post 방식으로 json 데이터를 전달하는 방법이다. json으로 전달하기 위해서는 먼저 데이터를 json으로 변경해야..

timeboxstory.tistory.com

감사합니다.

반응형

댓글