ThreadSafeClientConnManager 연결된 HttpClient 만들기
- 일반적인 ClientConnManger 가 연결된 DeafultHttpClient 를 사용하게 되면, 연결한 Connection 이 마무리 되기 전에 동일한 DefaultHttpClient instance 를 사용하여 connection 을 시도할 경우, IllegalStateException 이 발생하곤 한다.
- 이를 해결하기 위해서는 일반적인 ClientConnManger 대신에 ThreadSafeClientConnManger 를 연결해주면 된다.
public static final int MAX_TOTAL_CONNECTION = 20;
public static final int MAX_CONNECTIONS_PER_ROUTE = 20;
public static final int TIMEOUT_CONNECT = 15000;
public static final int TIMEOUT_READ = 15000;
private HttpClient mHttpClient;
...
private void initHttpClient(){
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme( "http", PlainSocketFactory.getSocketFactory(), 80));
HttpParams params = new BasicHttpParams();
ConnManagerParams.setMaxTotalConnections(params, MAX_TOTAL_CONNECTION );
ConnManagerParams.setMaxConnectionsPerRoute( params, new ConnPerRouteBean(MAX_CONNECTIONS_PER_ROUTE) );
HttpConnectionParams.setConnectionTimeout(params, TIMEOUT_CONNECT);
HttpConnectionParams.setSoTimeout(params, TIMEOUT_READ);
HttpConnectionParams.setTcpNoDelay(params, true);
ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(connManagerParams, schemeRegistry);
mHttpClient = new DefaultHttpClient(cm, null);
}
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] EditText cursor 위치 조정하기. (0) | 2012.12.12 |
---|---|
[android] ListView scrollTo 를 사용했을 경우의 문제점 & 해결방안 (0) | 2012.12.11 |
[android] Toast.LENGTH_LONG, Toast.LENGTH_SHORT 몇 초? (0) | 2012.12.10 |
[android] EditText hint text single line 설정하기. (2) | 2012.12.07 |
[android] mapView setCenter() 버그, 이슈. (0) | 2012.12.05 |
댓글