본문 바로가기
programming | development/troubleShooting

[Unity] UnityWebRequest 에러: System.UriFormatException 해결 방법

by foooo828 2023. 4. 30.
반응형

UnityWebRequest를 사용하여 웹 요청을 보낼 때 다음과 같은 오류가 발생

System.UriFormatException: Invalid URI: The hostname could not be parsed.
  at UnityEngineInternal.WebRequestUtils.MakeInitialUrl (System.String targetUrl, System.String localUrl) [0x000c8] in <31664f8150174b9e97cdc14284aa32bb>:0 at UnityEngine.Networking.UnityWebRequest.set_url (System.String value) [0x00007] in <31664f8150174b9e97cdc14284aa32bb>:0 
  at UnityEngine.Networking.UnityWebRequest..ctor (System.String url, System.String method, UnityEngine.Networking.DownloadHandler downloadHandler, UnityEngine.Networking.UploadHandler uploadHandler) [0x0001a] in <31664f8150174b9e97cdc14284aa32bb>:0 

 

 

= URL 형식이 잘못되었을 때 발생하는 오류

 

해결방법

백슬래시

Unity의 UnityWebRequest에서는 URL 형식이 슬래시(/) 기반이므로, 백슬래시(\)를 슬래시(/)로 변경해야함

var url = "http://127.0.0.1/myFolder\aa.json"; // ❌ 잘못된 URL
var url = "http://127.0.0.1/myFolder/aa.json"; // ✅ 올바른 URL

http 주소에 슬래시 대신 백슬래시 들어가있나 확인할것

' \ ' -> ' / '  로 바꾸기

 

UnityWebRequest URL 관련 추가  

  • 로컬 파일을 UnityWebRequest로 불러올 때는 file:// 프로토콜을 사용해야 함
  • 로컬파일경로를 쓸 경우에 윈도우에서는 백슬래시(\) 가 들어가도 문제가 없는데 윈도우 외의 다른 운영체제나 시스템에서는 호환이 안되기 때문에 그냥 슬래시(/) 쓰는걸 권장 
var url = "file:///C:/inetpub/wwwroot/myFolder/aa.json"; // ✅ 올바른 로컬 파일 경로

 

 

 

반응형