List of usage examples for org.apache.http.client.methods RequestBuilder addHeader
public RequestBuilder addHeader(final String name, final String value)
From source file:com.ibm.og.client.ApacheClient.java
private HttpUriRequest createRequest(final AuthenticatedRequest request) { final RequestBuilder builder = RequestBuilder.create(request.getMethod().toString()) .setUri(request.getUri());/*w w w . j a va 2 s . co m*/ for (final Entry<String, String> header : request.headers().entrySet()) { builder.addHeader(header.getKey(), header.getValue()); } if (DataType.NONE != request.getBody().getDataType()) { final AbstractHttpEntity entity = new CustomHttpEntity(request, this.writeThroughput); // TODO chunk size for chunked encoding is hardcoded to 2048 bytes. Can only be overridden // by implementing a custom connection factory entity.setChunked(this.chunkedEncoding); builder.setEntity(entity); } return builder.build(); }
From source file:org.daybreak.coccinella.webmagic.CrawlerDownloader.java
@Override public Page download(Request request, Task task) { Site site = null;//from w w w . j a v a 2s .c o m 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:feign.httpclient.ApacheHttpClient.java
HttpUriRequest toHttpUriRequest(Request request, Request.Options options) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { RequestBuilder requestBuilder = RequestBuilder.create(request.method()); //per request timeouts RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(options.connectTimeoutMillis()) .setSocketTimeout(options.readTimeoutMillis()).build(); requestBuilder.setConfig(requestConfig); URI uri = new URIBuilder(request.url()).build(); requestBuilder.setUri(uri.getScheme() + "://" + uri.getAuthority() + uri.getRawPath()); //request query params List<NameValuePair> queryParams = URLEncodedUtils.parse(uri, requestBuilder.getCharset().name()); for (NameValuePair queryParam : queryParams) { requestBuilder.addParameter(queryParam); }//from w w w.j av a 2s . c o m //request headers boolean hasAcceptHeader = false; for (Map.Entry<String, Collection<String>> headerEntry : request.headers().entrySet()) { String headerName = headerEntry.getKey(); if (headerName.equalsIgnoreCase(ACCEPT_HEADER_NAME)) { hasAcceptHeader = true; } if (headerName.equalsIgnoreCase(Util.CONTENT_LENGTH)) { // The 'Content-Length' header is always set by the Apache client and it // doesn't like us to set it as well. continue; } for (String headerValue : headerEntry.getValue()) { requestBuilder.addHeader(headerName, headerValue); } } //some servers choke on the default accept string, so we'll set it to anything if (!hasAcceptHeader) { requestBuilder.addHeader(ACCEPT_HEADER_NAME, "*/*"); } //request body if (request.body() != null) { HttpEntity entity = null; if (request.charset() != null) { ContentType contentType = getContentType(request); String content = new String(request.body(), request.charset()); entity = new StringEntity(content, contentType); } else { entity = new ByteArrayEntity(request.body()); } requestBuilder.setEntity(entity); } return requestBuilder.build(); }
From source file:com.alibaba.dubbo.rpc.protocol.springmvc.support.ApacheHttpClient.java
HttpUriRequest toHttpUriRequest(Request request, Request.Options options) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { RequestBuilder requestBuilder = RequestBuilder.create(request.method()); //per request timeouts // RequestConfig requestConfig = RequestConfig // .custom() // .setConnectTimeout(options.connectTimeoutMillis()) // .setSocketTimeout(options.readTimeoutMillis()) // .build(); //requestBuilder.setConfig(requestConfig); URI uri = new URIBuilder(request.url()).build(); requestBuilder.setUri(uri.getScheme() + "://" + uri.getAuthority() + uri.getRawPath()); //request query params List<NameValuePair> queryParams = URLEncodedUtils.parse(uri, requestBuilder.getCharset().name()); for (NameValuePair queryParam : queryParams) { requestBuilder.addParameter(queryParam); }/*from w ww .ja v a2 s . com*/ //request headers boolean hasAcceptHeader = false; for (Map.Entry<String, Collection<String>> headerEntry : request.headers().entrySet()) { String headerName = headerEntry.getKey(); if (headerName.equalsIgnoreCase(ACCEPT_HEADER_NAME)) { hasAcceptHeader = true; } if (headerName.equalsIgnoreCase(Util.CONTENT_LENGTH)) { // The 'Content-Length' header is always set by the Apache client and it // doesn't like us to set it as well. continue; } for (String headerValue : headerEntry.getValue()) { requestBuilder.addHeader(headerName, headerValue); } } //some servers choke on the default accept string, so we'll set it to anything if (!hasAcceptHeader) { requestBuilder.addHeader(ACCEPT_HEADER_NAME, "*/*"); } //request body if (request.body() != null) { HttpEntity entity = null; if (request.charset() != null) { ContentType contentType = getContentType(request); String content = new String(request.body(), request.charset()); entity = new StringEntity(content, contentType); } else { entity = new ByteArrayEntity(request.body()); } requestBuilder.setEntity(entity); } return requestBuilder.build(); }
From source file:org.eclipse.rdf4j.http.client.RDF4JProtocolSession.java
@Override protected HttpUriRequest getQueryMethod(QueryLanguage ql, String query, String baseURI, Dataset dataset, boolean includeInferred, int maxQueryTime, Binding... bindings) { RequestBuilder builder = null; if (transactionURL != null) { builder = RequestBuilder.put(transactionURL); builder.setHeader("Content-Type", Protocol.SPARQL_QUERY_MIME_TYPE + "; charset=utf-8"); builder.addParameter(Protocol.ACTION_PARAM_NAME, Action.QUERY.toString()); for (NameValuePair nvp : getQueryMethodParameters(ql, null, baseURI, dataset, includeInferred, maxQueryTime, bindings)) { builder.addParameter(nvp);/*from w w w . j av a 2s.co m*/ } // in a PUT request, we carry the actual query string as the entity // body rather than a parameter. builder.setEntity(new StringEntity(query, UTF8)); } else { builder = RequestBuilder.post(getQueryURL()); builder.setHeader("Content-Type", Protocol.FORM_MIME_TYPE + "; charset=utf-8"); builder.setEntity(new UrlEncodedFormEntity( getQueryMethodParameters(ql, query, baseURI, dataset, includeInferred, maxQueryTime, bindings), UTF8)); } // functionality to provide custom http headers as required by the // applications for (Map.Entry<String, String> additionalHeader : getAdditionalHttpHeaders().entrySet()) { builder.addHeader(additionalHeader.getKey(), additionalHeader.getValue()); } return builder.build(); }