Example usage for org.apache.http.client.methods RequestBuilder build

List of usage examples for org.apache.http.client.methods RequestBuilder build

Introduction

In this page you can find the example usage for org.apache.http.client.methods RequestBuilder build.

Prototype

public HttpUriRequest build() 

Source Link

Usage

From source file:org.apache.asterix.test.aql.TestExecutor.java

protected HttpUriRequest constructPostMethodUrl(String statement, String endpoint, String stmtParam,
        List<CompilationUnit.Parameter> otherParams) {
    RequestBuilder builder = RequestBuilder.post(endpoint);
    if (stmtParam != null) {
        for (CompilationUnit.Parameter param : injectStatement(statement, stmtParam, otherParams)) {
            builder.addParameter(param.getName(), param.getValue());
        }//from   w ww  . java2s.co  m
        builder.addParameter(stmtParam, statement);
    } else {
        // this seems pretty bad - we should probably fix the API and not the client
        builder.setEntity(new StringEntity(statement, StandardCharsets.UTF_8));
    }
    builder.setCharset(StandardCharsets.UTF_8);
    return builder.build();
}

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());/*from w  w  w  . j  a  v a  2s.  c om*/

    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.apache.asterix.test.common.TestExecutor.java

protected HttpUriRequest constructPostMethodUrl(String statement, URI uri, String stmtParam,
        List<CompilationUnit.Parameter> otherParams) {
    RequestBuilder builder = RequestBuilder.post(uri);
    if (stmtParam != null) {
        for (CompilationUnit.Parameter param : upsertParam(otherParams, stmtParam, statement)) {
            builder.addParameter(param.getName(), param.getValue());
        }// w w  w. j ava 2s.  co  m
        builder.addParameter(stmtParam, statement);
    } else {
        // this seems pretty bad - we should probably fix the API and not the client
        builder.setEntity(new StringEntity(statement, StandardCharsets.UTF_8));
    }
    builder.setCharset(StandardCharsets.UTF_8);
    return builder.build();
}

From source file:org.apache.asterix.test.common.TestExecutor.java

protected HttpUriRequest constructPostMethodJson(String statement, URI uri, String stmtParam,
        List<CompilationUnit.Parameter> otherParams) {
    if (stmtParam == null) {
        throw new NullPointerException("Statement parameter required.");
    }// www.j  av  a2 s. com
    RequestBuilder builder = RequestBuilder.post(uri);
    ObjectMapper om = new ObjectMapper();
    ObjectNode content = om.createObjectNode();
    for (CompilationUnit.Parameter param : upsertParam(otherParams, stmtParam, statement)) {
        content.put(param.getName(), param.getValue());
    }
    try {
        builder.setEntity(new StringEntity(om.writeValueAsString(content), ContentType.APPLICATION_JSON));
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    }
    builder.setCharset(StandardCharsets.UTF_8);
    return builder.build();
}

From source file:org.bonitasoft.connectors.rest.RESTConnector.java

/**
 * Execute a given request/* w ww.ja  v a2s.co m*/
 * 
 * @param request The request to execute
 * @return The response of the executed request
 * @throws Exception any exception that might occur
 */
public void execute(final Request request) throws Exception {
    CloseableHttpClient httpClient = null;

    try {
        final URL url = request.getUrl();
        final String urlHost = url.getHost();

        final Builder requestConfigurationBuilder = RequestConfig.custom();
        requestConfigurationBuilder.setConnectionRequestTimeout(CONNECTION_TIMEOUT);
        requestConfigurationBuilder.setRedirectsEnabled(request.isRedirect());

        final HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
        httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
        setSSL(request.getSsl(), httpClientBuilder);
        setProxy(request.getProxy(), httpClientBuilder, requestConfigurationBuilder);
        setCookies(requestConfigurationBuilder, httpClientBuilder, request.getCookies(), urlHost);

        final RequestBuilder requestBuilder = getRequestBuilderFromMethod(request.getRestMethod());
        requestBuilder.setVersion(
                new ProtocolVersion(HTTP_PROTOCOL, HTTP_PROTOCOL_VERSION_MAJOR, HTTP_PROTOCOL_VERSION_MINOR));
        int urlPort = url.getPort();
        if (url.getPort() == -1) {
            urlPort = url.getDefaultPort();
        }
        final String urlProtocol = url.getProtocol();
        final String urlStr = url.toString();
        requestBuilder.setUri(urlStr);
        setHeaders(requestBuilder, request.getHeaders());
        if (!HTTPMethod.GET.equals(HTTPMethod.valueOf(requestBuilder.getMethod()))) {
            final String body = request.getBody();
            if (body != null) {
                requestBuilder.setEntity(new StringEntity(request.getBody(), request.getContentType()));
            }
        }

        final HttpContext httpContext = setAuthorizations(requestConfigurationBuilder,
                request.getAuthorization(), request.getProxy(), urlHost, urlPort, urlProtocol,
                httpClientBuilder);

        requestBuilder.setConfig(requestConfigurationBuilder.build());
        httpClientBuilder.setDefaultRequestConfig(requestConfigurationBuilder.build());

        final HttpUriRequest httpRequest = requestBuilder.build();
        httpClient = httpClientBuilder.build();
        final CloseableHttpResponse httpResponse = httpClient.execute(httpRequest, httpContext);
        LOGGER.fine("Request sent.");
        setOutputs(httpResponse, request);
    } finally {
        try {
            if (httpClient != null) {
                httpClient.close();
            }
        } catch (final IOException ex) {
            logException(ex);
        }
    }
}

From source file:org.daybreak.coccinella.webmagic.CrawlerDownloader.java

@Override
public Page download(Request request, Task task) {
    Site site = null;//from www.  j  a v  a 2  s  .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:com.hp.octane.integrations.services.rest.OctaneRestClientImpl.java

/**
 * This method should be the ONLY mean that creates Http Request objects
 *
 * @param octaneRequest Request data as it is maintained in Octane related flavor
 * @return pre-configured HttpUriRequest
 *//*from   w w w  . jav a 2  s  .c o  m*/
private HttpUriRequest createHttpRequest(OctaneRequest octaneRequest) {
    HttpUriRequest request;
    RequestBuilder requestBuilder;

    //  create base request by METHOD
    if (octaneRequest.getMethod().equals(HttpMethod.GET)) {
        requestBuilder = RequestBuilder.get(octaneRequest.getUrl());
    } else if (octaneRequest.getMethod().equals(HttpMethod.DELETE)) {
        requestBuilder = RequestBuilder.delete(octaneRequest.getUrl());
    } else if (octaneRequest.getMethod().equals(HttpMethod.POST)) {
        requestBuilder = RequestBuilder.post(octaneRequest.getUrl());
        requestBuilder
                .addHeader(new BasicHeader(RestService.CONTENT_ENCODING_HEADER, RestService.GZIP_ENCODING));
        requestBuilder.setEntity(new GzipCompressingEntity(
                new InputStreamEntity(octaneRequest.getBody(), ContentType.APPLICATION_JSON)));
    } else if (octaneRequest.getMethod().equals(HttpMethod.PUT)) {
        requestBuilder = RequestBuilder.put(octaneRequest.getUrl());
        requestBuilder
                .addHeader(new BasicHeader(RestService.CONTENT_ENCODING_HEADER, RestService.GZIP_ENCODING));
        requestBuilder.setEntity(new GzipCompressingEntity(
                new InputStreamEntity(octaneRequest.getBody(), ContentType.APPLICATION_JSON)));
    } else {
        throw new RuntimeException("HTTP method " + octaneRequest.getMethod() + " not supported");
    }

    //  set custom headers
    if (octaneRequest.getHeaders() != null) {
        for (Map.Entry<String, String> e : octaneRequest.getHeaders().entrySet()) {
            requestBuilder.setHeader(e.getKey(), e.getValue());
        }
    }

    //  set system headers
    requestBuilder.setHeader(CLIENT_TYPE_HEADER, CLIENT_TYPE_VALUE);

    request = requestBuilder.build();
    return request;
}

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);// w  w  w .  j ava  2  s . com
        }
        // 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();
}

From source file:org.eclipse.rdf4j.http.client.RDF4JProtocolSession.java

@Override
protected HttpUriRequest getUpdateMethod(QueryLanguage ql, String update, String baseURI, Dataset dataset,
        boolean includeInferred, int maxExecutionTime, Binding... bindings) {
    RequestBuilder builder = null;
    if (transactionURL != null) {
        builder = RequestBuilder.put(transactionURL);
        builder.addHeader("Content-Type", Protocol.SPARQL_UPDATE_MIME_TYPE + "; charset=utf-8");
        builder.addParameter(Protocol.ACTION_PARAM_NAME, Action.UPDATE.toString());
        for (NameValuePair nvp : getUpdateMethodParameters(ql, null, baseURI, dataset, includeInferred,
                maxExecutionTime, bindings)) {
            builder.addParameter(nvp);/*ww w.jav  a  2s  .c om*/
        }
        // in a PUT request, we carry the only actual update string as the
        // request body - the rest is sent as request parameters
        builder.setEntity(new StringEntity(update, UTF8));
    } else {
        builder = RequestBuilder.post(getUpdateURL());
        builder.addHeader("Content-Type", Protocol.FORM_MIME_TYPE + "; charset=utf-8");

        builder.setEntity(new UrlEncodedFormEntity(getUpdateMethodParameters(ql, update, baseURI, dataset,
                includeInferred, maxExecutionTime, 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();
}

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  ww. ja  v a 2 s .  co 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();
}