안드로이드 개발 질문/답변
(글 수 45,052)
앱에서 httpclient를 이용해서 서버측으로 접근할때 기본 도메인이면 접근이 가능한데
서브도메인으로 접근하면 응답값을 못받거나 UnknownHostException 발생합니다.
정상적으로 요청을 하면 응답 받을때 httpEntity.getContent(); 부분에서 UnknownHostException 이 발생하구요.
EntityUtils.toString(httpEntity)를 호출하면 아무런 내용이 없이 공백만 리턴 됩니다.
브라우저에서 접근하면 제대로 응답이 나오고요.
url은 http://apps.openur.com/index.do 입니다.
그리고 httpclient 소스는 아래와 같이 작성 했습니다.
HttpParams httpParameters = new BasicHttpParams();
httpParameters.setParameter("http.protocol.version", HttpVersion.HTTP_1_1);
httpParameters.setParameter("http.socket.timeout", new Integer(10000));
httpParameters.setParameter("http.protocol.content-charset", "utf-8");
HttpConnectionParams.setConnectionTimeout(httpParameters, 10000);
HttpConnectionParams.setSoTimeout(httpParameters, 10000);
httpClient = new DefaultHttpClient(httpParameters);
List<NameValuePair> queryParams = new ArrayList<NameValuePair>();
Iterator<String> keyIter = param.keySet().iterator();
while( keyIter.hasNext() ) {
String key = keyIter.next();
queryParams.add(new BasicNameValuePair(key, param.get(key).toString()));
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(queryParams, paramEncoding);
HttpPost httpPost = new HttpPost("http://apps.openur.com/index.do");
httpPost.setEntity(entity);
httpPost.setHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
HttpResponse response = httpClient.execute(httpPost);
StatusLine statusLine = response.getStatusLine();
HttpEntity httpEntity = response.getEntity();
if( statusLine.getStatusCode() == HttpStatus.SC_OK && httpEntity != null ) {
ios = httpEntity.getContent();
returnBuf.append(EntityUtils.toString(httpEntity));
httpEntity.consumeContent();
}




ios = httpEntity.getContent();
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
ios = new GZIPInputStream(ios);
}