본문 바로가기
IT 실무/모바일 프로그래밍

[Error] IllegalArgumentException: Host name may not be null

by id 2013. 2. 8.
반응형

HttpPost httppost = new HttpPost("http://abc_def.com/");

 

이런 부분에서 오류난다. 호스트 주소는 null이면 안된다는 것인데, 이는 자바에서 url내부에 있는 언더바(_)를 인식하지 못해서 호스트 주소를 제대로 파싱하지 못한 것이다.

 

이 오류는

 

HttpPost httppost = new HttpPost("http://abc_def.com/aaa.php?dd=hello world");

 

와 같이 파라미터 값에 공백이 있거나 특수문자가 있어도 발생 할 수 있다. 즉, url은 호스트, 도메인, 서브 도메인, 하위 폴더, 파일 등등 복잡한 구성을 가지고 있으므로 조금만 군더더기가 있어도 인식을 제대로 못하는 것이다.

 

파일이나 파라미터에 언더바나 특수문자가 있을 경우 따로따로 인코딩 해 줘야 한다. 전체 주소를 한꺼번에 인코딩 해 버리면 어느게 호스트고 어느게 도메인이고 파일명인지 파싱이 안되어 또 같은 오류가 발생한다.

 

참고 : http://stackoverflow.com/questions/12537522/host-name-may-not-be-null-in-httpresponse-execute-for-android

반응형

댓글0