@@ -108,8 +108,8 @@ public class AsyncHttpClient {
108
108
private static final String ENCODING_GZIP = "gzip" ;
109
109
private static final String LOG_TAG = "AsyncHttpClient" ;
110
110
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 ;
113
113
114
114
private final DefaultHttpClient httpClient ;
115
115
private final HttpContext httpContext ;
@@ -118,7 +118,6 @@ public class AsyncHttpClient {
118
118
private final Map <String , String > clientHeaderMap ;
119
119
private boolean isUrlEncodingEnabled = true ;
120
120
121
-
122
121
/**
123
122
* Creates a new AsyncHttpClient with default constructor arguments values
124
123
*/
@@ -202,12 +201,12 @@ public AsyncHttpClient(SchemeRegistry schemeRegistry) {
202
201
203
202
BasicHttpParams httpParams = new BasicHttpParams ();
204
203
205
- ConnManagerParams .setTimeout (httpParams , socketTimeout );
204
+ ConnManagerParams .setTimeout (httpParams , timeout );
206
205
ConnManagerParams .setMaxConnectionsPerRoute (httpParams , new ConnPerRouteBean (maxConnections ));
207
206
ConnManagerParams .setMaxTotalConnections (httpParams , DEFAULT_MAX_CONNECTIONS );
208
207
209
- HttpConnectionParams .setSoTimeout (httpParams , socketTimeout );
210
- HttpConnectionParams .setConnectionTimeout (httpParams , socketTimeout );
208
+ HttpConnectionParams .setSoTimeout (httpParams , timeout );
209
+ HttpConnectionParams .setConnectionTimeout (httpParams , timeout );
211
210
HttpConnectionParams .setTcpNoDelay (httpParams , true );
212
211
HttpConnectionParams .setSocketBufferSize (httpParams , DEFAULT_SOCKET_BUFFER_SIZE );
213
212
@@ -322,16 +321,51 @@ public void setUserAgent(String userAgent) {
322
321
HttpProtocolParams .setUserAgent (this .httpClient .getParams (), userAgent );
323
322
}
324
323
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
+
325
356
/**
326
- * Set the connection timeout. By default, 10 seconds.
357
+ * Set the connection and socket timeout. By default, 10 seconds.
327
358
*
328
- * @param timeout the connect/socket timeout in milliseconds
359
+ * @param timeout the connect/socket timeout in milliseconds, at least 1 second
329
360
*/
330
361
public void setTimeout (int timeout ) {
362
+ if (timeout < 1000 )
363
+ timeout = DEFAULT_SOCKET_TIMEOUT ;
364
+ this .timeout = timeout ;
331
365
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 );
335
369
}
336
370
337
371
/**
@@ -897,7 +931,7 @@ private HttpEntity paramsToEntity(RequestParams params, AsyncHttpResponseHandler
897
931
return entity ;
898
932
}
899
933
900
- public boolean isUrlEncodingEnabled (){
934
+ public boolean isUrlEncodingEnabled () {
901
935
return isUrlEncodingEnabled ;
902
936
}
903
937
0 commit comments