@@ -130,7 +130,8 @@ public class AsyncHttpClient {
130
130
public static final int DEFAULT_SOCKET_BUFFER_SIZE = 8192 ;
131
131
132
132
private int maxConnections = DEFAULT_MAX_CONNECTIONS ;
133
- private int timeout = DEFAULT_SOCKET_TIMEOUT ;
133
+ private int connectTimeout = DEFAULT_SOCKET_TIMEOUT ;
134
+ private int responseTimeout = DEFAULT_SOCKET_TIMEOUT ;
134
135
135
136
private final DefaultHttpClient httpClient ;
136
137
private final HttpContext httpContext ;
@@ -222,12 +223,12 @@ public AsyncHttpClient(SchemeRegistry schemeRegistry) {
222
223
223
224
BasicHttpParams httpParams = new BasicHttpParams ();
224
225
225
- ConnManagerParams .setTimeout (httpParams , timeout );
226
+ ConnManagerParams .setTimeout (httpParams , connectTimeout );
226
227
ConnManagerParams .setMaxConnectionsPerRoute (httpParams , new ConnPerRouteBean (maxConnections ));
227
228
ConnManagerParams .setMaxTotalConnections (httpParams , DEFAULT_MAX_CONNECTIONS );
228
229
229
- HttpConnectionParams .setSoTimeout (httpParams , timeout );
230
- HttpConnectionParams .setConnectionTimeout (httpParams , timeout );
230
+ HttpConnectionParams .setSoTimeout (httpParams , responseTimeout );
231
+ HttpConnectionParams .setConnectionTimeout (httpParams , connectTimeout );
231
232
HttpConnectionParams .setTcpNoDelay (httpParams , true );
232
233
HttpConnectionParams .setSocketBufferSize (httpParams , DEFAULT_SOCKET_BUFFER_SIZE );
233
234
@@ -255,7 +256,7 @@ public void process(HttpRequest request, HttpContext context) {
255
256
header , clientHeaderMap .get (header ),
256
257
overwritten .getName (), overwritten .getValue ())
257
258
);
258
-
259
+
259
260
//remove the overwritten header
260
261
request .removeHeader (overwritten );
261
262
}
@@ -457,27 +458,73 @@ public void setMaxConnections(int maxConnections) {
457
458
}
458
459
459
460
/**
460
- * Returns current socket timeout limit (milliseconds), default is 10000 (10sec)
461
+ * Returns current socket timeout limit (milliseconds). By default, this is
462
+ * set to 10 seconds.
461
463
*
462
464
* @return Socket Timeout limit in milliseconds
465
+ * @deprecated Use either {@link #getConnectTimeout()} or {@link #getResponseTimeout()}
463
466
*/
464
467
public int getTimeout () {
465
- return timeout ;
468
+ return connectTimeout ;
466
469
}
467
470
468
471
/**
469
- * Set the connection and socket timeout. By default, 10 seconds.
472
+ * Set both the connection and socket timeouts. By default, both are set to
473
+ * 10 seconds.
470
474
*
471
- * @param timeout the connect/socket timeout in milliseconds, at least 1 second
475
+ * @see If you need further refinement for either value, you can use {@link #setConnectTimeout(int)}
476
+ * or {@link #setResponseTimeout(int)} methods.
477
+ * @param value the connect/socket timeout in milliseconds, at least 1 second
472
478
*/
473
- public void setTimeout (int timeout ) {
474
- if (timeout < 1000 )
475
- timeout = DEFAULT_SOCKET_TIMEOUT ;
476
- this .timeout = timeout ;
477
- final HttpParams httpParams = this .httpClient .getParams ();
478
- ConnManagerParams .setTimeout (httpParams , this .timeout );
479
- HttpConnectionParams .setSoTimeout (httpParams , this .timeout );
480
- HttpConnectionParams .setConnectionTimeout (httpParams , this .timeout );
479
+ public void setTimeout (int value ) {
480
+ value = value < 1000 ? DEFAULT_SOCKET_TIMEOUT : value ;
481
+ setConnectTimeout (value );
482
+ setResponseTimeout (value );
483
+ }
484
+
485
+ /**
486
+ * Returns current connection timeout limit (milliseconds). By default, this
487
+ * is set to 10 seconds.
488
+ *
489
+ * @return Connection timeout limit in milliseconds
490
+ */
491
+ public int getConnectTimeout () {
492
+ return connectTimeout ;
493
+ }
494
+
495
+ /**
496
+ * Set connection timeout limit (milliseconds). By default, this is set to
497
+ * 10 seconds.
498
+ *
499
+ * @param value Connection timeout in milliseconds, minimal value is 1000 (1 second).
500
+ */
501
+ public void setConnectTimeout (int value ) {
502
+ connectTimeout = value < 1000 ? DEFAULT_SOCKET_TIMEOUT : value ;
503
+ final HttpParams httpParams = httpClient .getParams ();
504
+ ConnManagerParams .setTimeout (httpParams , connectTimeout );
505
+ HttpConnectionParams .setConnectionTimeout (httpParams , connectTimeout );
506
+ }
507
+
508
+ /**
509
+ * Returns current connection timeout limit (milliseconds). By default, this
510
+ * is set to 10 seconds.
511
+ *
512
+ * @return Connection timeout limit in milliseconds
513
+ */
514
+ public int getResponseTimeout () {
515
+ return responseTimeout ;
516
+ }
517
+
518
+ /**
519
+ * Set connection timeout limit (milliseconds). By default, this is set to
520
+ * 10 seconds.
521
+ *
522
+ * @param value Connection timeout in milliseconds, minimal value is 1000 (1 second).
523
+ */
524
+ public void setResponseTimeout (int value ) {
525
+ responseTimeout = value < 1000 ? DEFAULT_SOCKET_TIMEOUT : value ;
526
+ final HttpParams httpParams = httpClient .getParams ();
527
+ HttpConnectionParams .setSoTimeout (httpParams , responseTimeout );
481
528
}
482
529
483
530
/**
0 commit comments