HTTP 헤더의 Host 값 수정하기

지난 글에서 /system/etc/hosts 파일을 수정했다. 그런데 이 방법은 사용자 바이너리를 루팅하거나 엔지니어링 바이너리(주로 단말 제조사에서 사용)에서만 가능하다.

이번에는 파일을 직접 수정하는 대신에, HTTP request를 만들 때 헤더에 Host 값을 직접 넣자. Apache HttpComponents를 사용하는 경우,

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost     = new HttpPost( "http://www.example.com" );
httpPost.setHeader("Host", "test.example.com");
HttpEntity requestEntity = new StringEntity( "{\"id\": \"Open\"}" ,
                                                         HTTP.UTF_8 );
httpPost.setEntity( requestEntity );
HttpResponse response = httpClient.execute( httpPost );

와 같이 Host 값을 설정할 수 있다.

참고로, Host 값을 따로 설정하지 않는 경우, URL의 Host 부분이 자동으로 채워진다. 위 경우 test.example.com로 채우지 않는다면 www.example.com이 채워질 것이다.

그 밖에

URL의 Host 부분만 잘라내는 방법이 궁금하다면 스택오버플로우의 이 글을 참조하자.

참고

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.