List of usage examples for org.apache.http.client.config CookieSpecs BEST_MATCH
String BEST_MATCH
To view the source code for org.apache.http.client.config CookieSpecs BEST_MATCH.
Click Source Link
From source file:org.aliuge.crawler.fetcher.DefaultFetcher.java
public DefaultFetcher createFetcher(FetchConfig config) { // /*from w w w . j a v a 2 s . c om*/ connectionManager = new PoolingHttpClientConnectionManager(); BasicCookieStore cookieStore = new BasicCookieStore(); CookieSpecProvider easySpecProvider = new CookieSpecProvider() { public CookieSpec create(HttpContext context) { return new BrowserCompatSpec() { @Override public void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException { // Oh, I am easy } }; } }; Registry<CookieSpecProvider> r = RegistryBuilder.<CookieSpecProvider>create() .register(CookieSpecs.BEST_MATCH, new BestMatchSpecFactory()) .register(CookieSpecs.BROWSER_COMPATIBILITY, new BrowserCompatSpecFactory()) .register("easy", easySpecProvider).build(); // Create global request configuration defaultRequestConfig = RequestConfig.custom().setCookieSpec("easy").setSocketTimeout(10000) .setConnectTimeout(10000).build(); connectionManager.setMaxTotal(config.getMaxTotalConnections()); connectionManager.setDefaultMaxPerRoute(config.getMaxConnectionsPerHost()); // Create an HttpClient with the given custom dependencies and // configuration. httpClient = HttpClients.custom().setConnectionManager(connectionManager).setDefaultCookieStore(cookieStore) .setDefaultCookieSpecRegistry(r) /* .setProxy(new HttpHost("myproxy", 8080)) */ .setDefaultRequestConfig(defaultRequestConfig).build(); if (connectionMonitorThread == null) { connectionMonitorThread = new IdleConnectionMonitorThread(connectionManager); } /* * connectionMonitorThread.start(); try { * connectionMonitorThread.join(); } catch (InterruptedException e) { // * TODO Auto-generated catch block e.printStackTrace(); } */ return this; }
From source file:org.daybreak.coccinella.webmagic.CrawlerDownloader.java
@Override public Page download(Request request, Task task) { Site site = null;/* w ww . ja va 2s . c om*/ if (task != null) { site = task.getSite(); } Set<Integer> acceptStatCode; String charset = null; Map<String, String> headers = null; if (site != null) { acceptStatCode = site.getAcceptStatCode(); charset = site.getCharset(); headers = site.getHeaders(); } else { acceptStatCode = Sets.newHashSet(200); } logger.info("downloading page " + request.getUrl()); RequestBuilder requestBuilder = null; if (request instanceof CrawlerRequest) { CrawlerRequest crawlerRequest = (CrawlerRequest) request; if (StringUtils.isNotBlank(crawlerRequest.getCrawler().getReferer())) { site.addHeader(HttpHeaders.REFERER, crawlerRequest.getCrawler().getReferer()); } if (crawlerRequest.getCrawler().getMethod() == HttpMethod.GET) { requestBuilder = RequestBuilder.get().setUri(request.getUrl()); } else if (crawlerRequest.getCrawler().getMethod() == HttpMethod.POST) { try { requestBuilder = RequestBuilder.post().setUri(crawlerRequest.getUrl()) .setEntity(crawlerRequest.createEntity()); } catch (UnsupportedEncodingException ex) { logger.warn("The encoding is not supported: " + crawlerRequest.getCrawler().getEncode()); return null; } } } if (requestBuilder == null) { return null; } if (headers != null) { for (Map.Entry<String, String> headerEntry : headers.entrySet()) { requestBuilder.addHeader(headerEntry.getKey(), headerEntry.getValue()); } } RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() .setConnectionRequestTimeout(site.getTimeOut()).setSocketTimeout(site.getTimeOut()) .setConnectTimeout(site.getTimeOut()).setCookieSpec(CookieSpecs.BEST_MATCH); if (site != null && site.getHttpProxy() != null) { requestConfigBuilder.setProxy(site.getHttpProxy()); } requestBuilder.setConfig(requestConfigBuilder.build()); CloseableHttpResponse httpResponse = null; try { httpResponse = getHttpClient(site).execute(requestBuilder.build()); int statusCode = httpResponse.getStatusLine().getStatusCode(); if (acceptStatCode.contains(statusCode)) { // ?? Header[] resHeaders = httpResponse.getAllHeaders(); for (int i = 0; i < resHeaders.length; i++) { if (resHeaders[i].getName().equals("Set-Cookie")) { String cookie = resHeaders[i].getValue(); String cookieName = cookie.split("=")[0]; String cookieValue = cookie.split("=")[1].split(";")[0]; site.addCookie(cookieName, cookieValue); } } //charset if (charset == null) { String value = httpResponse.getEntity().getContentType().getValue(); charset = UrlUtils.getCharset(value); } return handleResponse(request, charset, httpResponse, task); } else { logger.warn("code error " + statusCode + "\t" + request.getUrl()); return null; } } catch (IOException e) { logger.warn("download page " + request.getUrl() + " error", e); if (site.getCycleRetryTimes() > 0) { return addToCycleRetry(request, site); } return null; } finally { try { if (httpResponse != null) { //ensure the connection is released back to pool EntityUtils.consume(httpResponse.getEntity()); } } catch (IOException e) { logger.warn("close response fail", e); } } }
From source file:org.codelibs.robot.S2RobotTest.java
@Override protected void setUp() throws Exception { super.setUp(); final Map<String, String> featureMap = newHashMap(); featureMap.put("http://xml.org/sax/features/namespaces", "false"); final Map<String, String> propertyMap = newHashMap(); final Map<String, String> childUrlRuleMap = newHashMap(); childUrlRuleMap.put("//A", "href"); childUrlRuleMap.put("//AREA", "href"); childUrlRuleMap.put("//FRAME", "src"); childUrlRuleMap.put("//IFRAME", "src"); childUrlRuleMap.put("//IMG", "src"); childUrlRuleMap.put("//LINK", "href"); childUrlRuleMap.put("//SCRIPT", "src"); container = new StandardRobotContainer(); container.<HcHttpClient>prototype("internalHttpClient", HcHttpClient.class, client -> { client.setCookieSpec(CookieSpecs.BEST_MATCH); client.setClientConnectionManager(container.getComponent("clientConnectionManager")); }).prototype("httpClient", FaultTolerantClient.class, client -> { client.setRobotClient(container.getComponent("internalHttpClient")); client.setMaxRetryCount(5);// w w w.j a va2 s. c o m client.setRetryInterval(500); }).prototype("fsClient", FileSystemClient.class) .prototype("ruleManager", RuleManagerImpl.class, manager -> { manager.addRule(container.getComponent("sitemapsRule")); manager.addRule(container.getComponent("fileRule")); }).prototype("accessResult", AccessResultImpl.class).prototype("urlQueue", UrlQueueImpl.class) .prototype("robotThread", S2RobotThread.class).prototype("s2Robot", S2Robot.class) .prototype("urlFilterService", UrlFilterServiceImpl.class) .prototype("urlQueueService", UrlQueueServiceImpl.class) .prototype("dataService", DataServiceImpl.class).prototype("urlFilter", UrlFilterImpl.class) .singleton("urlConvertHelper", UrlConvertHelper.class) .singleton("intervalController", DefaultIntervalController.class) .singleton("sitemapsHelper", SitemapsHelper.class).singleton("logHelper", LogHelperImpl.class) .singleton("encodingHelper", EncodingHelper.class) .singleton("contentLengthHelper", ContentLengthHelper.class) .singleton("mimeTypeHelper", MimeTypeHelperImpl.class) .<FileTransformer>singleton("fileTransformer", FileTransformer.class, transformer -> { transformer.setName("fileTransformer"); transformer.setFeatureMap(featureMap); transformer.setPropertyMap(propertyMap); transformer.setChildUrlRuleMap(childUrlRuleMap); }).singleton("dataHelper", MemoryDataHelper.class) .singleton("robotsTxtHelper", RobotsTxtHelper.class) .<S2RobotClientFactory>singleton("clientFactory", S2RobotClientFactory.class, factory -> { factory.addClient("http:.*", container.getComponent("httpClient")); factory.addClient("file:.*", container.getComponent("fsClient")); }).singleton("tikaExtractor", TikaExtractor.class) .<ExtractorFactory>singleton("extractorFactory", ExtractorFactory.class, factory -> { TikaExtractor tikaExtractor = container.getComponent("tikaExtractor"); factory.addExtractor("text/plain", tikaExtractor); factory.addExtractor("text/html", tikaExtractor); })// .singleton("httpClient", HcHttpClient.class)// .singleton("sitemapsResponseProcessor", SitemapsResponseProcessor.class)// .<SitemapsRule>singleton("sitemapsRule", SitemapsRule.class, rule -> { rule.setResponseProcessor(container.getComponent("sitemapsResponseProcessor")); rule.setRuleId("sitemapsRule"); rule.addRule("url", ".*sitemap.*"); })// .<DefaultResponseProcessor>singleton("defaultResponseProcessor", DefaultResponseProcessor.class, processor -> { processor.setTransformer(container.getComponent("fileTransformer")); processor.setSuccessfulHttpCodes(new int[] { 200 }); processor.setNotModifiedHttpCodes(new int[] { 304 }); })// .<RegexRule>singleton("fileRule", RegexRule.class, rule -> { rule.setRuleId("fileRule"); rule.setDefaultRule(true); rule.setResponseProcessor(container.getComponent("defaultResponseProcessor")); })// .<PoolingHttpClientConnectionManager>singleton("clientConnectionManager", new PoolingHttpClientConnectionManager(5, TimeUnit.MINUTES), manager -> { manager.setMaxTotal(200); manager.setDefaultMaxPerRoute(20); }); s2Robot = container.getComponent("s2Robot"); dataService = container.getComponent("dataService"); urlQueueService = container.getComponent("urlQueueService"); fileTransformer = container.getComponent("fileTransformer"); }
From source file:com.ngdata.hbaseindexer.indexer.FusionPipelineClient.java
public FusionPipelineClient(String endpointUrl, String fusionUser, String fusionPass, String fusionRealm) throws MalformedURLException { this.fusionUser = fusionUser; this.fusionPass = fusionPass; this.fusionRealm = fusionRealm; String fusionLoginConf = System.getProperty(FusionKrb5HttpClientConfigurer.LOGIN_CONFIG_PROP); if (fusionLoginConf != null && !fusionLoginConf.isEmpty()) { httpClient = FusionKrb5HttpClientConfigurer.createClient(fusionUser); isKerberos = true;/* w w w .ja v a 2 s . co m*/ } else { globalConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.BEST_MATCH).build(); cookieStore = new BasicCookieStore(); // build the HttpClient to be used for all requests HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); httpClientBuilder.setDefaultRequestConfig(globalConfig).setDefaultCookieStore(cookieStore); httpClientBuilder.setMaxConnPerRoute(100); httpClientBuilder.setMaxConnTotal(500); if (fusionUser != null && fusionRealm == null) httpClientBuilder.addInterceptorFirst(new PreEmptiveBasicAuthenticator(fusionUser, fusionPass)); httpClient = httpClientBuilder.build(); } originalEndpoints = Arrays.asList(endpointUrl.split(",")); try { sessions = establishSessions(originalEndpoints, fusionUser, fusionPass, fusionRealm); } catch (Exception exc) { if (exc instanceof RuntimeException) { throw (RuntimeException) exc; } else { throw new RuntimeException(exc); } } random = new Random(); jsonObjectMapper = new ObjectMapper(); requestCounter = new AtomicInteger(0); }
From source file:co.paralleluniverse.fibers.dropwizard.FiberHttpClientBuilder.java
/** * Map the parameters in HttpClientConfiguration to a BasicHttpParams object * * @return a BasicHttpParams object from the HttpClientConfiguration *///ww w .java2s . co m protected RequestConfig createHttpParams() { RequestConfig.Builder rcb = RequestConfig.custom(); rcb.setCookieSpec(CookieSpecs.BEST_MATCH); if (configuration.isCookiesEnabled()) rcb.setCookieSpec(CookieSpecs.BEST_MATCH); else rcb.setCookieSpec(CookieSpecs.IGNORE_COOKIES); rcb.setStaleConnectionCheckEnabled(false); return rcb.build(); }
From source file:org.apache.felix.http.itest.SessionHandlingTest.java
@Test public void testSessionAttributes() throws Exception { setupContext("test1", "/"); setupContext("test2", "/"); setupLatches(2);//from w w w .j a va2s . c om setupServlet("foo", new String[] { "/foo" }, 1, "test1"); setupServlet("bar", new String[] { "/bar" }, 2, "test2"); assertTrue(initLatch.await(5, TimeUnit.SECONDS)); RequestConfig globalConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.BEST_MATCH).build(); final CloseableHttpClient httpclient = HttpClients.custom().setDefaultRequestConfig(globalConfig) .setDefaultCookieStore(new BasicCookieStore()).build(); JSONObject json; // session should not be available // check for foo servlet json = getJSONResponse(httpclient, "/foo"); assertFalse(((Boolean) json.get("session")).booleanValue()); // check for bar servlet json = getJSONResponse(httpclient, "/bar"); assertFalse(((Boolean) json.get("session")).booleanValue()); // create session for context of servlet foo // check session and session attribute json = getJSONResponse(httpclient, "/foo?create=true"); assertTrue(((Boolean) json.get("session")).booleanValue()); assertEquals("test1", json.get("value")); final String sessionId1 = (String) json.get("sessionId"); assertNotNull(sessionId1); // check session for servlet bar (= no session) json = getJSONResponse(httpclient, "/bar"); assertFalse(((Boolean) json.get("session")).booleanValue()); // another request to servlet foo, still the same json = getJSONResponse(httpclient, "/foo"); assertTrue(((Boolean) json.get("session")).booleanValue()); assertEquals("test1", json.get("value")); assertEquals(sessionId1, json.get("sessionId")); // create session for second context json = getJSONResponse(httpclient, "/bar?create=true"); assertTrue(((Boolean) json.get("session")).booleanValue()); assertEquals("test2", json.get("value")); final String sessionId2 = (String) json.get("sessionId"); assertNotNull(sessionId2); assertFalse(sessionId1.equals(sessionId2)); // and context foo is untouched json = getJSONResponse(httpclient, "/foo"); assertTrue(((Boolean) json.get("session")).booleanValue()); assertEquals("test1", json.get("value")); assertEquals(sessionId1, json.get("sessionId")); // invalidate session for foo context json = getJSONResponse(httpclient, "/foo?destroy=true"); assertFalse(((Boolean) json.get("session")).booleanValue()); // bar should be untouched json = getJSONResponse(httpclient, "/bar"); assertTrue(((Boolean) json.get("session")).booleanValue()); assertEquals("test2", json.get("value")); assertEquals(sessionId2, json.get("sessionId")); }
From source file:com.ea.core.bridge.ws.rest.client.AbstractRestClient.java
public AbstractRestClient(URL httpUrl) { super(httpUrl); HttpMessageParserFactory<HttpResponse> responseParserFactory = new DefaultHttpResponseParserFactory() { @Override//from ww w . j a va 2 s . c o m public HttpMessageParser<HttpResponse> create(SessionInputBuffer buffer, MessageConstraints constraints) { LineParser lineParser = new BasicLineParser() { @Override public Header parseHeader(final CharArrayBuffer buffer) { try { return super.parseHeader(buffer); } catch (ParseException ex) { return new BasicHeader(buffer.toString(), null); } } }; return new DefaultHttpResponseParser(buffer, lineParser, DefaultHttpResponseFactory.INSTANCE, constraints) { @Override protected boolean reject(final CharArrayBuffer line, int count) { // try to ignore all garbage preceding a status line infinitely return false; } }; } }; HttpMessageWriterFactory<HttpRequest> requestWriterFactory = new DefaultHttpRequestWriterFactory(); HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory = new ManagedHttpClientConnectionFactory( requestWriterFactory, responseParserFactory); SSLContext sslcontext = SSLContexts.createSystemDefault(); X509HostnameVerifier hostnameVerifier = new BrowserCompatHostnameVerifier(); Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", new SSLConnectionSocketFactory(sslcontext, hostnameVerifier)).build(); DnsResolver dnsResolver = new SystemDefaultDnsResolver() { @Override public InetAddress[] resolve(final String host) throws UnknownHostException { if (host.equalsIgnoreCase("myhost") || host.equalsIgnoreCase("localhost")) { return new InetAddress[] { InetAddress.getByAddress(new byte[] { 127, 0, 0, 1 }) }; } else { return super.resolve(host); } } }; PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager( socketFactoryRegistry, connFactory, dnsResolver); SocketConfig socketConfig = SocketConfig.custom().setTcpNoDelay(true).build(); connManager.setDefaultSocketConfig(socketConfig); connManager.setSocketConfig(new HttpHost("somehost", 80), socketConfig); MessageConstraints messageConstraints = MessageConstraints.custom().setMaxHeaderCount(200) .setMaxLineLength(2000).build(); ConnectionConfig connectionConfig = ConnectionConfig.custom() .setMalformedInputAction(CodingErrorAction.IGNORE) .setUnmappableInputAction(CodingErrorAction.IGNORE).setCharset(Consts.UTF_8) .setMessageConstraints(messageConstraints).build(); connManager.setDefaultConnectionConfig(connectionConfig); connManager.setConnectionConfig(new HttpHost("somehost", 80), ConnectionConfig.DEFAULT); connManager.setMaxTotal(100); connManager.setDefaultMaxPerRoute(10); connManager.setMaxPerRoute(new HttpRoute(new HttpHost("somehost", 80)), 20); CookieStore cookieStore = new BasicCookieStore(); CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); RequestConfig defaultRequestConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.BEST_MATCH) .setExpectContinueEnabled(true).setStaleConnectionCheckEnabled(true) .setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).setConnectionRequestTimeout(3000) .setConnectTimeout(3000).setSocketTimeout(3000).build(); client = HttpClients.custom().setConnectionManager(connManager).setDefaultCookieStore(cookieStore) .setDefaultCredentialsProvider(credentialsProvider) // .setProxy(new HttpHost("myproxy", 8080)) .setDefaultRequestConfig(defaultRequestConfig).build(); }
From source file:com.github.lpezet.antiope.dao.DefaultHttpClientFactory.java
@Override public HttpClient createHttpClient(APIConfiguration pConfiguration) { // Use a custom connection factory to customize the process of // initialization of outgoing HTTP connections. Beside standard connection // configuration parameters HTTP connection factory can define message // parser / writer routines to be employed by individual connections. HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> oConnFactory = new ManagedHttpClientConnectionFactory( new DefaultHttpRequestWriterFactory(), new DefaultHttpResponseParserFactory()); SSLContext oSslContext = null; X509HostnameVerifier oHostnameVerifier = null; if (pConfiguration.isCheckSSLCertificates()) { oSslContext = SSLContexts.createSystemDefault(); oHostnameVerifier = new BrowserCompatHostnameVerifier(); } else {// w ww . j a va 2 s .co m final TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted(final X509Certificate[] chain, final String authType) { } @Override public void checkServerTrusted(final X509Certificate[] chain, final String authType) { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } } }; // Install the all-trusting trust manager try { final SSLContext sslContext = SSLContext.getInstance(SSL); sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); // Create an ssl socket factory with our all-trusting manager //final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); oSslContext = sslContext; } catch (NoSuchAlgorithmException e) { throw new APIClientException(e); } catch (KeyManagementException e) { throw new APIClientException(e); } oHostnameVerifier = new AllowAllHostnameVerifier(); } // Create a registry of custom connection socket factories for supported // protocol schemes. Registry<ConnectionSocketFactory> oSocketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create() .register(HTTP, PlainConnectionSocketFactory.INSTANCE) .register(HTTPS, new SSLConnectionSocketFactory(oSslContext, oHostnameVerifier)).build(); // Use custom DNS resolver to override the system DNS resolution. DnsResolver oDnsResolver = new SystemDefaultDnsResolver(); /* { @Override public InetAddress[] resolve(final String host) throws UnknownHostException { if (host.equalsIgnoreCase("myhost")) { return new InetAddress[] { InetAddress.getByAddress(new byte[] { 127, 0, 0, 1 }) }; } else { return super.resolve(host); } } };*/ // Create a connection manager with custom configuration. PoolingHttpClientConnectionManager oConnManager = new PoolingHttpClientConnectionManager( oSocketFactoryRegistry, oConnFactory, oDnsResolver); // Create socket configuration SocketConfig oSocketConfig = SocketConfig.custom().setTcpNoDelay(true) .setSoTimeout(pConfiguration.getSocketTimeout()).build(); // Configure the connection manager to use socket configuration either // by default or for a specific host. oConnManager.setDefaultSocketConfig(oSocketConfig); // connManager.setSocketConfig(new HttpHost("somehost", 80), oSocketConfig); // Create message constraints MessageConstraints oMessageConstraints = MessageConstraints.custom().setMaxHeaderCount(200) .setMaxLineLength(2000).build(); // Create connection configuration ConnectionConfig oConnectionConfig = ConnectionConfig.custom() .setMalformedInputAction(CodingErrorAction.IGNORE) .setUnmappableInputAction(CodingErrorAction.IGNORE).setCharset(Consts.UTF_8) .setMessageConstraints(oMessageConstraints).build(); // Configure the connection manager to use connection configuration either // by default or for a specific host. oConnManager.setDefaultConnectionConfig(oConnectionConfig); // connManager.setConnectionConfig(new HttpHost("somehost", 80), ConnectionConfig.DEFAULT); // Configure total max or per route limits for persistent connections // that can be kept in the pool or leased by the connection manager. oConnManager.setMaxTotal(100); oConnManager.setDefaultMaxPerRoute(10); //oConnManager.setMaxPerRoute(new HttpRoute(new HttpHost("somehost", 80)), 20); // Use custom cookie store if necessary. CookieStore oCookieStore = new BasicCookieStore(); // Use custom credentials provider if necessary. // // Create global request configuration RequestConfig oDefaultRequestConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.BEST_MATCH) //.setExpectContinueEnabled(true) // WARNING: setting it to true slows things down by 4s!!!! .setStaleConnectionCheckEnabled(true) .setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)) .setConnectTimeout(pConfiguration.getConnectionTimeout()).build(); CredentialsProvider oCredentialsProvider = new BasicCredentialsProvider(); HttpHost oProxy = null; if (pConfiguration.getProxyHost() != null && pConfiguration.getProxyPort() > 0) { String proxyHost = pConfiguration.getProxyHost(); int proxyPort = pConfiguration.getProxyPort(); String proxyUsername = pConfiguration.getProxyUsername(); String proxyPassword = pConfiguration.getProxyPassword(); String proxyDomain = pConfiguration.getProxyDomain(); String proxyWorkstation = pConfiguration.getProxyWorkstation(); oProxy = new HttpHost(proxyHost, proxyPort); if (proxyUsername != null && proxyPassword != null) { oCredentialsProvider.setCredentials(new AuthScope(proxyHost, proxyPort), new NTCredentials(proxyUsername, proxyPassword, proxyWorkstation, proxyDomain)); } } // Create an HttpClient with the given custom dependencies and configuration. CloseableHttpClient oHttpClient = HttpClients.custom().setConnectionManager(oConnManager) .setDefaultCookieStore(oCookieStore).setDefaultCredentialsProvider(oCredentialsProvider) .setProxy(oProxy).setDefaultRequestConfig(oDefaultRequestConfig).build(); return oHttpClient; /* RequestConfig oRequestConfig = RequestConfig.custom() .setConnectTimeout(pConfiguration.getConnectionTimeout()) .setSocketTimeout(pConfiguration.getSocketTimeout()) .setStaleConnectionCheckEnabled(true) .build(); */ }