Skip to content

Commit 23db9dc

Browse files
committed
Timeout and maxConnections gets/sets
1 parent aa00c99 commit 23db9dc

File tree

1 file changed

+46
-12
lines changed

1 file changed

+46
-12
lines changed

library/src/com/loopj/android/http/AsyncHttpClient.java

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ public class AsyncHttpClient {
108108
private static final String ENCODING_GZIP = "gzip";
109109
private static final String LOG_TAG = "AsyncHttpClient";
110110

111-
private static int maxConnections = DEFAULT_MAX_CONNECTIONS;
112-
private static int socketTimeout = DEFAULT_SOCKET_TIMEOUT;
111+
private int maxConnections = DEFAULT_MAX_CONNECTIONS;
112+
private int timeout = DEFAULT_SOCKET_TIMEOUT;
113113

114114
private final DefaultHttpClient httpClient;
115115
private final HttpContext httpContext;
@@ -118,7 +118,6 @@ public class AsyncHttpClient {
118118
private final Map<String, String> clientHeaderMap;
119119
private boolean isUrlEncodingEnabled = true;
120120

121-
122121
/**
123122
* Creates a new AsyncHttpClient with default constructor arguments values
124123
*/
@@ -202,12 +201,12 @@ public AsyncHttpClient(SchemeRegistry schemeRegistry) {
202201

203202
BasicHttpParams httpParams = new BasicHttpParams();
204203

205-
ConnManagerParams.setTimeout(httpParams, socketTimeout);
204+
ConnManagerParams.setTimeout(httpParams, timeout);
206205
ConnManagerParams.setMaxConnectionsPerRoute(httpParams, new ConnPerRouteBean(maxConnections));
207206
ConnManagerParams.setMaxTotalConnections(httpParams, DEFAULT_MAX_CONNECTIONS);
208207

209-
HttpConnectionParams.setSoTimeout(httpParams, socketTimeout);
210-
HttpConnectionParams.setConnectionTimeout(httpParams, socketTimeout);
208+
HttpConnectionParams.setSoTimeout(httpParams, timeout);
209+
HttpConnectionParams.setConnectionTimeout(httpParams, timeout);
211210
HttpConnectionParams.setTcpNoDelay(httpParams, true);
212211
HttpConnectionParams.setSocketBufferSize(httpParams, DEFAULT_SOCKET_BUFFER_SIZE);
213212

@@ -322,16 +321,51 @@ public void setUserAgent(String userAgent) {
322321
HttpProtocolParams.setUserAgent(this.httpClient.getParams(), userAgent);
323322
}
324323

324+
325+
/**
326+
* Returns current limit of parallel connections
327+
*
328+
* @return maximum limit of parallel connections, default is 10
329+
*/
330+
public int getMaxConnections() {
331+
return maxConnections;
332+
}
333+
334+
/**
335+
* Sets maximum limit of parallel connections
336+
*
337+
* @param maxConnections maximum parallel connections, must be at least 1
338+
*/
339+
public void setMaxConnections(int maxConnections) {
340+
if (maxConnections < 1)
341+
maxConnections = DEFAULT_MAX_CONNECTIONS;
342+
this.maxConnections = maxConnections;
343+
final HttpParams httpParams = this.httpClient.getParams();
344+
ConnManagerParams.setMaxConnectionsPerRoute(httpParams, new ConnPerRouteBean(this.maxConnections));
345+
}
346+
347+
/**
348+
* Returns current socket timeout limit (milliseconds), default is 10000 (10sec)
349+
*
350+
* @return Socket Timeout limit in milliseconds
351+
*/
352+
public int getTimeout() {
353+
return timeout;
354+
}
355+
325356
/**
326-
* Set the connection timeout. By default, 10 seconds.
357+
* Set the connection and socket timeout. By default, 10 seconds.
327358
*
328-
* @param timeout the connect/socket timeout in milliseconds
359+
* @param timeout the connect/socket timeout in milliseconds, at least 1 second
329360
*/
330361
public void setTimeout(int timeout) {
362+
if (timeout < 1000)
363+
timeout = DEFAULT_SOCKET_TIMEOUT;
364+
this.timeout = timeout;
331365
final HttpParams httpParams = this.httpClient.getParams();
332-
ConnManagerParams.setTimeout(httpParams, timeout);
333-
HttpConnectionParams.setSoTimeout(httpParams, timeout);
334-
HttpConnectionParams.setConnectionTimeout(httpParams, timeout);
366+
ConnManagerParams.setTimeout(httpParams, this.timeout);
367+
HttpConnectionParams.setSoTimeout(httpParams, this.timeout);
368+
HttpConnectionParams.setConnectionTimeout(httpParams, this.timeout);
335369
}
336370

337371
/**
@@ -897,7 +931,7 @@ private HttpEntity paramsToEntity(RequestParams params, AsyncHttpResponseHandler
897931
return entity;
898932
}
899933

900-
public boolean isUrlEncodingEnabled(){
934+
public boolean isUrlEncodingEnabled() {
901935
return isUrlEncodingEnabled;
902936
}
903937

0 commit comments

Comments
 (0)