마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 ConnectTimeoutException, SocketTimeoutException 질문입니다...

0 추천

 

안드로이드 초보 개발자입니다.
 
웹서버에서 문자열을 받아서 처리하는 간단한 앱을 제작중인데요...
 
04-05 19:03:24.537: W/System.err(6139): org.apache.http.conn.ConnectTimeoutException: Connect to /xxx.xxx.xxx.xxx:80 timed out
04-05 19:03:24.537: W/System.err(6139): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)
04-05 19:03:24.537: W/System.err(6139): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:147)
04-05 19:03:24.537: W/System.err(6139): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-05 19:03:24.537: W/System.err(6139): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-05 19:03:24.537: W/System.err(6139): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:363)
04-05 19:03:24.537: W/System.err(6139): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-05 19:03:24.537: W/System.err(6139): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-05 19:03:24.537: W/System.err(6139): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-05 19:03:24.537: W/System.err(6139): at com.xxx.xxx.utils.HttpUtils.doGet(HttpUtils.java:38)
 
아래는 소스입니다.
 
public static String doGet(String strUrl, String strEncoding) {
String strResponse = "";
 
try{
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(strUrl);
get.setHeader("Connection", "Keep-Alive");
HttpParams params = client.getParams();
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);
HttpResponse response = client.execute(get);
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
strResponse = EntityUtils.toString(response.getEntity(), strEncoding);
}
}catch(Exception e) {
e.printStackTrace();
}
return strResponse;
}

웹 사이트에서 응답 문자열을 받아서 처리하려고 하는데요...

가끔 가다가 ConnectTimeoutException 또는 SocketTimeoutException 이 발생합니다.

서버는 정상이구요, 브라우저에 직접 URL을 넣으면 매번 정확히 나오는데..(이것때문에 몇일동안 삽질중...ㅠㅠ)

고수님들... 답변 부탁드립니다...^^

지미라 (4,330 포인트) 님이 2013년 4월 5일 질문

1개의 답변

0 추천
keep alive에 대한 시간 정의는 하셨는지요?
빵떡 (560 포인트) 님이 2013년 4월 6일 답변
keep alive 시간 정의는 어떻게 하는건가요?
...