List of usage examples for org.apache.http.client.config RequestConfig copy
public static RequestConfig.Builder copy(final RequestConfig config)
From source file:io.mandrel.requests.http.ApacheHttpRequester.java
public HttpUriRequest prepareRequest(Uri uri, Spider spider) { Builder builder = RequestConfig.copy(defaultRequestConfig); HttpGet request = new HttpGet(uri.toURI()); // Add headers, cookies and ohter stuff if (headers() != null) { headers().forEach(header -> { if (header != null) { request.addHeader(header.getName(), header.getValue()); }//from w w w.j a v a 2 s.c o m }); } HttpParams params = new BasicHttpParams(); if (params() != null) { params().forEach(param -> { if (param != null) { params.setParameter(param.getName(), param.getValue()); } }); } request.setParams(params); // Configure the user -agent String userAgent = userAgentProvisionner().get(uri.toString(), spider); if (Strings.isNullOrEmpty(userAgent)) { request.addHeader(HttpHeaders.USER_AGENT, userAgent); } // Configure the proxy ProxyServer proxy = proxyServersSource().findProxy(spider); if (proxy != null) { // TODO Auth! HttpHost proxyHost = new HttpHost(proxy.getHost(), proxy.getPort(), proxy.getProtocol().getProtocol()); builder.setProxy(proxyHost); } request.setConfig(builder.build()); return request; }
From source file:com.spotify.docker.client.DefaultDockerClient.java
/** * Create a new client using the configuration of the builder. * * @param builder DefaultDockerClient builder */// w w w . j a v a2s .co m protected DefaultDockerClient(final Builder builder) { URI originalUri = checkNotNull(builder.uri, "uri"); this.apiVersion = builder.apiVersion(); if ((builder.dockerCertificates != null) && !originalUri.getScheme().equals("https")) { throw new IllegalArgumentException( "An HTTPS URI for DOCKER_HOST must be provided to use Docker client certificates"); } if (originalUri.getScheme().equals(UNIX_SCHEME)) { this.uri = UnixConnectionSocketFactory.sanitizeUri(originalUri); } else { this.uri = originalUri; } final PoolingHttpClientConnectionManager cm = getConnectionManager(builder); final PoolingHttpClientConnectionManager noTimeoutCm = getConnectionManager(builder); final RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout((int) builder.connectTimeoutMillis) .setConnectTimeout((int) builder.connectTimeoutMillis) .setSocketTimeout((int) builder.readTimeoutMillis).build(); final ClientConfig config = DEFAULT_CONFIG.connectorProvider(new ApacheConnectorProvider()) .property(ApacheClientProperties.CONNECTION_MANAGER, cm) .property(ApacheClientProperties.REQUEST_CONFIG, requestConfig); this.authConfig = builder.authConfig; this.client = ClientBuilder.newClient(config); // ApacheConnector doesn't respect per-request timeout settings. // Workaround: instead create a client with infinite read timeout, // and use it for waitContainer, stopContainer, attachContainer, logs, and build final RequestConfig noReadTimeoutRequestConfig = RequestConfig.copy(requestConfig) .setSocketTimeout((int) NO_TIMEOUT).build(); this.noTimeoutClient = ClientBuilder.newBuilder().withConfig(config) .property(ApacheClientProperties.CONNECTION_MANAGER, noTimeoutCm) .property(ApacheClientProperties.REQUEST_CONFIG, noReadTimeoutRequestConfig).build(); }
From source file:com.gooddata.GoodData.java
private HttpClientBuilder createHttpClientBuilder(final GoodDataSettings settings) { final PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); connectionManager.setDefaultMaxPerRoute(settings.getMaxConnections()); connectionManager.setMaxTotal(settings.getMaxConnections()); final SocketConfig.Builder socketConfig = SocketConfig.copy(SocketConfig.DEFAULT); socketConfig.setSoTimeout(settings.getSocketTimeout()); connectionManager.setDefaultSocketConfig(socketConfig.build()); final RequestConfig.Builder requestConfig = RequestConfig.copy(RequestConfig.DEFAULT); requestConfig.setConnectTimeout(settings.getConnectionTimeout()); requestConfig.setConnectionRequestTimeout(settings.getConnectionRequestTimeout()); requestConfig.setSocketTimeout(settings.getSocketTimeout()); return HttpClientBuilder.create() .setUserAgent(StringUtils.isNotBlank(settings.getUserAgent()) ? String.format("%s %s", settings.getUserAgent(), getUserAgent()) : getUserAgent())/* w w w . j a v a 2 s. c o m*/ .setConnectionManager(connectionManager).setDefaultRequestConfig(requestConfig.build()); }
From source file:com.wudaosoft.net.httpclient.Request.java
/** * //from w ww . j av a 2 s.c o m * @param workerBuilder * @param responseHandler * @return * @throws Exception */ public <T> T doRequest(WorkerBuilder workerBuilder, ResponseHandler<T> responseHandler) throws Exception { String method = workerBuilder.getMethod(); String url = workerBuilder.getUrl(); Args.notNull(workerBuilder, "WorkerBuilder"); Args.notEmpty(method, "WorkerBuilder.getMethod()"); Args.notEmpty(url, "WorkerBuilder.getUrl()"); Args.notNull(responseHandler, "responseHandler"); // if(!workerBuilder.isAnyHost()) { if (!isFullUrl(url)) { // notFullUrl(url); Args.notEmpty(hostConfig.getHostUrl(), "HostConfig.getHostUrl()"); url = hostConfig.getHostUrl() + url; } Charset charset = hostConfig.getCharset() == null ? Consts.UTF_8 : hostConfig.getCharset(); String stringBody = workerBuilder.getStringBody(); File fileBody = workerBuilder.getFileBody(); InputStream streamBody = workerBuilder.getStreamBody(); Map<String, String> params = workerBuilder.getParameters(); String contentType = null; if (responseHandler instanceof JsonResponseHandler) { contentType = MediaType.APPLICATION_JSON_VALUE; } else if (responseHandler instanceof SAXSourceResponseHandler || responseHandler instanceof XmlResponseHandler) { contentType = MediaType.APPLICATION_XML_VALUE; } else if (responseHandler instanceof FileResponseHandler || responseHandler instanceof ImageResponseHandler || responseHandler instanceof OutputStreamResponseHandler) { contentType = MediaType.ALL_VALUE; } else if (responseHandler instanceof NoResultResponseHandler) { contentType = ((NoResultResponseHandler) responseHandler).getContentType().getMimeType(); } else { contentType = MediaType.TEXT_PLAIN_VALUE; } RequestBuilder requestBuilder = RequestBuilder.create(method).setCharset(charset).setUri(url); if (stringBody != null) { StringEntity reqEntity = new StringEntity(stringBody, charset); reqEntity.setContentType(contentType + ";charset=" + charset.name()); requestBuilder.setEntity(reqEntity); } else if (fileBody != null || streamBody != null) { String filename = workerBuilder.getFilename(); MultipartEntityBuilder reqEntity = MultipartEntityBuilder.create().setLaxMode(); if (fileBody != null) { Args.check(fileBody.isFile(), "fileBody must be a file"); Args.check(fileBody.canRead(), "fileBody must be readable"); if (filename == null && streamBody == null) filename = fileBody.getName(); FileBody bin = new FileBody(fileBody, ContentType.APPLICATION_OCTET_STREAM, streamBody != null ? fileBody.getName() : filename); reqEntity.addPart(workerBuilder.getFileFieldName(), bin); } Args.notEmpty(filename, "filename"); if (streamBody != null) reqEntity.addBinaryBody(workerBuilder.getFileFieldName(), streamBody, ContentType.APPLICATION_OCTET_STREAM, filename); buildParameters(reqEntity, params, charset); requestBuilder.setEntity(reqEntity.build()); } if (fileBody == null && streamBody == null) { buildParameters(requestBuilder, params); } if (workerBuilder.getReadTimeout() > -1) { requestBuilder.setConfig(RequestConfig.copy(this.hostConfig.getRequestConfig()) .setSocketTimeout(workerBuilder.getReadTimeout()).build()); } HttpUriRequest httpRequest = ParameterRequestBuilder.build(requestBuilder); setAcceptHeader(httpRequest, contentType); if (workerBuilder.isAjax()) setAjaxHeader(httpRequest); HttpClientContext context = workerBuilder.getContext(); if (context == null) context = defaultHttpContext; T result = getHttpClient().execute(httpRequest, responseHandler, context); if (log.isDebugEnabled()) { log.debug(String.format("Send data to path:[%s]\"%s\". result: %s", method, url, result)); } return result; }
From source file:org.apache.tamaya.etcd.EtcdAccessor.java
/** * Deletes a given key. The response is as follows: * //from w w w. ja v a 2 s. c om * <pre> * _key.source=[etcd]http://127.0.0.1:4001 * _key.createdIndex=12 * _key.modifiedIndex=34 * _key.ttl=300 * _key.expiry=... * // optional * _key.prevNode.createdIndex=12 * _key.prevNode.modifiedIndex=34 * _key.prevNode.ttl=300 * _key.prevNode.expiration=... * _key.prevNode.value=... * </pre> * * @param key the key to be deleted. * @return the response mpas as described above. */ public Map<String, String> delete(String key) { final Map<String, String> result = new HashMap<>(); try { final HttpDelete delete = new HttpDelete(serverURL + "/v2/keys/" + key); delete.setConfig(RequestConfig.copy(RequestConfig.DEFAULT).setSocketTimeout(socketTimeout) .setConnectionRequestTimeout(timeout).setConnectTimeout(connectTimeout).build()); try (CloseableHttpResponse response = httpclient.execute(delete)) { if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { final HttpEntity entity = response.getEntity(); final JsonReader reader = readerFactory .createReader(new StringReader(EntityUtils.toString(entity))); final JsonObject o = reader.readObject(); final JsonObject node = o.getJsonObject("node"); if (node.containsKey("createdIndex")) { result.put("_" + key + ".createdIndex", String.valueOf(node.getInt("createdIndex"))); } if (node.containsKey("modifiedIndex")) { result.put("_" + key + ".modifiedIndex", String.valueOf(node.getInt("modifiedIndex"))); } if (node.containsKey("expiration")) { result.put("_" + key + ".expiration", String.valueOf(node.getString("expiration"))); } if (node.containsKey("ttl")) { result.put("_" + key + ".ttl", String.valueOf(node.getInt("ttl"))); } parsePrevNode(key, result, o); EntityUtils.consume(entity); } } } catch (final Exception e) { LOG.log(Level.INFO, "Error deleting key '" + key + "' from etcd: " + serverURL, e); result.put("_ERROR", "Error deleting '" + key + "' from etcd: " + serverURL + ": " + e.toString()); } return result; }
From source file:org.sdr.webrec.core.WebRec.java
private void initParameters() { // initialize HTTP parameters params = new BasicHttpParams(); ConnManagerParams.setMaxTotalConnections(params, 100); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); httpclient = new DefaultHttpClient(cm, params); //TODO: CloseableHttpClient httpclient = HttpClients.createDefault(); //set proxy if available in settings if (settings.getProxyHost() != null && settings.getProxyHost().length() > 0) { HttpHost proxy = new HttpHost(settings.getProxyHost(), settings.getProxyPort()); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); //set authentication to proxy is available is settings if (settings.getProxyUserName() != null && settings.getProxyUserName().length() > 0 && settings.getProxyPasswd() != null) { httpclient.getCredentialsProvider().setCredentials( new AuthScope(settings.getProxyHost(), settings.getProxyPort()), new UsernamePasswordCredentials(settings.getProxyUserName(), settings.getProxyPasswd())); LOGGER.debug("autentication for proxy on"); }/*from w w w. ja v a2 s . c o m*/ } // initialize scheme registry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443)); // Create an HttpClient with the ThreadSafeClientConnManager. // This connection manager must be used if more than one thread will // be using the HttpClient. cm = new ThreadSafeClientConnManager(params, schemeRegistry); httpclient.setKeepAliveStrategy(new ConnectionKeepAliveStrategy() { public long getKeepAliveDuration(HttpResponse response, HttpContext context) { // Honor 'keep-alive' header HeaderElementIterator it = new BasicHeaderElementIterator( response.headerIterator(HTTP.CONN_KEEP_ALIVE)); while (it.hasNext()) { HeaderElement he = it.nextElement(); String param = he.getName(); String value = he.getValue(); if (value != null && param.equalsIgnoreCase("timeout")) { try { return Long.parseLong(value); } catch (NumberFormatException ignore) { } } } //otherwise keep alive for 30 seconds return 30 * 1000; } }); httpget = null; httpclient = new DefaultHttpClient(cm, params); // Create global request configuration RequestConfig defaultRequestConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.BEST_MATCH) .setExpectContinueEnabled(true).setStaleConnectionCheckEnabled(settings.isKeepConnectionAlive()) .setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); requestConfig = RequestConfig.copy(defaultRequestConfig).setSocketTimeout(timeout) .setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).build(); }