return new AdaptingResponse(httpClient, httpClient.execute(request));
}
}
public HttpClientBuilder getDefaultHttpClientBuilder() {
final HttpClientBuilder builder = HttpClientBuilder.create();
builder.setRedirectStrategy(new LaxRedirectStrategy());
builder.disableContentCompression();
synchronized (this) {
if (connectionManager == null) {
connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(this.numberOfConcurrentRequests);
nonShutdownableConnectionManager = new HttpClientConnectionManager() {
public void closeExpiredConnections() {
connectionManager.closeExpiredConnections();
}
public ConnectionRequest requestConnection(HttpRoute route, Object state) {
return connectionManager.requestConnection(route, state);
}
public void releaseConnection(HttpClientConnection managedConn, Object state, long keepalive, TimeUnit tunit) {
connectionManager.releaseConnection(managedConn, state, keepalive, tunit);
}
public void connect(HttpClientConnection managedConn, HttpRoute route, int connectTimeout, HttpContext context) throws IOException {
connectionManager.connect(managedConn, route, connectTimeout, context);
}
public void upgrade(HttpClientConnection managedConn, HttpRoute route, HttpContext context) throws IOException {
connectionManager.upgrade(managedConn, route, context);
}
public void routeComplete(HttpClientConnection managedConn, HttpRoute route, HttpContext context) throws IOException {
connectionManager.routeComplete(managedConn, route, context);
}
public void shutdown() {
// don't shutdown pool
}
public void closeIdleConnections(long idleTimeout, TimeUnit tunit) {
connectionManager.closeIdleConnections(idleTimeout, tunit);
}
};
}
connectionManager.setDefaultSocketConfig(SocketConfig.custom().setSoTimeout((int) TimeUnit.MINUTES.toMillis(3)).build());
builder.setConnectionManager(nonShutdownableConnectionManager);
}
return builder;
}