Hello, That's what I was looking for. Problem solved for me now.
Thanks, Christopher On 3 September 2014 16:12, Todd W Lainhart <lainh...@us.ibm.com> wrote: > > HttpRequestBase has a "setRequestConfig" method. > > Sorry - make that "setConfig". > > > > > > Todd Lainhart > Rational software > IBM Corporation > 550 King Street, Littleton, MA 01460-1250 > 1-978-899-4705 > 2-276-4705 (T/L) > lainh...@us.ibm.com > > ----- Forwarded by Todd W Lainhart/Lexington/IBM on 09/03/2014 10:12 AM > ----- > > From: Todd W Lainhart/Lexington/IBM > To: "HttpClient User Discussion" <httpclient-users@hc.apache.org> > Date: 09/03/2014 10:11 AM > Subject: Re: Changing the connect/socket timeout for an instance of > CloseableHttpClient, without creating a new instance > > > HttpRequestBase has a "setRequestConfig" method. > > Note that the default provided by the HttpClient builder and the > RequestConfig set on the request method are not "merged" if both are > present. If there is a RequestConfig associated to the request, all of > its values are considered, regardless if there is a default set on the > HttpClient instance. > > > > > > Todd Lainhart > Rational software > IBM Corporation > 550 King Street, Littleton, MA 01460-1250 > 1-978-899-4705 > 2-276-4705 (T/L) > lainh...@us.ibm.com > > > > > From: Christopher BROWN <br...@reflexe.fr> > To: Apache HTTP Client Users List <httpclient-users@hc.apache.org> > Date: 09/03/2014 05:02 AM > Subject: Changing the connect/socket timeout for an instance of > CloseableHttpClient, without creating a new instance > > > > Hello, > > I'm using the 4.3.x "fluent API" of HTTP client. I'd like to be able to > change the socket timeout and the connect timeout at runtime without > having > to shutdown an active HTTP client and its associated pooling connection > manager (because that would likely cause a brief period of unavailability > adding further complexity to calling code, or failure). Here's a > (simplified) bit of code showing how I set it up at first. > > final HttpClientBuilder builder = > HttpClients.custom().useSystemProperties() > .disableAuthCaching() > .disableAutomaticRetries() > .disableContentCompression() > .disableCookieManagement() > .disableRedirectHandling(); > > if (highCapacity) > { > _pool = new PoolingHttpClientConnectionManager(); > doSetNetworkPoolSize(_ps.getNetworkPoolSize(), _pool); > builder.setConnectionManager(_pool); > } > else > { > _pool = null; > builder.setConnectionManager(new BasicHttpClientConnectionManager()); > } > > builder.*setDefaultRequestConfig*(RequestConfig.custom() > .setAuthenticationEnabled(false) > .setCookieSpec(CookieSpecs.IGNORE_COOKIES) > .setRedirectsEnabled(false) > .*setSocketTimeout(SOCKET_TIMEOUT)* > .*setConnectTimeout(CONNECTION_TIMEOUT)* > .build() > ); > > _http = builder.build(); > > The JavaDoc for "*setDefaultRequestConfig*" states: > *Assigns default RequestConfig instance which will be used for request > execution if not explicitly set in the client execution context.* > > ...but doesn't go as far as indicating how to explicitly set in the client > execution context. I currently execute requests via: > CloseableHttpClient.execute(HttpUriRequest) > > ...so I assumed that this meant I should instead use: > CloseableHttpClient.execute(HttpUriRequest,HttpContext) > > ...but *HttpContext* is a very generic interface, and (assuming that's > what > I'm supposed to be using), I can't see how to create or obtain an instance > that might override just these specific properties without clobbering > anything else unintentionally. > > What is the intended way to override (per request, or for all subsequent > requests) the socket timeout and the connect timeout? > > Thanks in advance. > Christopher > >