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

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

Introduction

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

Prototype

public RequestBuilder setUri(final String uri) 

Source Link

Usage

From source file:com.restfiddle.handler.http.builder.RfRequestBuilder.java

private void setUriWithParams(RfRequestDTO requestDTO, RequestBuilder requestBuilder) {
    String apiUrl = requestDTO.getApiUrl();
    List<UrlParamDTO> urlParams = requestDTO.getUrlParams();
    if (urlParams != null && !urlParams.isEmpty()) {
        apiUrl = buildUrlWithParams(apiUrl, urlParams);
    }//  ww w . j av  a2 s  . c om
    requestBuilder.setUri(apiUrl);
    // TODO : Shall we set this API URL in UI Layer itself?
    requestDTO.setApiUrl(apiUrl);
}

From source file:org.keycloak.adapters.authorization.cip.HttpClaimInformationPointProvider.java

private InputStream executeRequest(HttpFacade httpFacade) {
    String method = config.get("method").toString();

    if (method == null) {
        method = "GET";
    }//  w  w w. j  a va 2 s.c  o m

    RequestBuilder builder = null;

    if ("GET".equalsIgnoreCase(method)) {
        builder = RequestBuilder.get();
    } else {
        builder = RequestBuilder.post();
    }

    builder.setUri(config.get("url").toString());

    byte[] bytes = new byte[0];

    try {
        setParameters(builder, httpFacade);

        if (config.containsKey("headers")) {
            setHeaders(builder, httpFacade);
        }

        HttpResponse response = httpClient.execute(builder.build());
        HttpEntity entity = response.getEntity();

        if (entity != null) {
            bytes = EntityUtils.toByteArray(entity);
        }

        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();

        if (statusCode < 200 || statusCode >= 300) {
            throw new HttpResponseException(
                    "Unexpected response from server: " + statusCode + " / " + statusLine.getReasonPhrase(),
                    statusCode, statusLine.getReasonPhrase(), bytes);
        }

        return new ByteArrayInputStream(bytes);
    } catch (Exception cause) {
        try {
            throw new RuntimeException(
                    "Error executing http method [" + builder + "]. Response : "
                            + StreamUtil.readString(new ByteArrayInputStream(bytes), Charset.forName("UTF-8")),
                    cause);
        } catch (Exception e) {
            throw new RuntimeException("Error executing http method [" + builder + "]", cause);
        }
    }
}

From source file:org.dasein.cloud.qingcloud.util.requester.QingCloudRequestBuilder.java

private QingCloudRequestBuilder(QingCloud qingCloud, RequestBuilder requestBuilder) {
    this.qingCloud = qingCloud;
    this.requestBuilder = requestBuilder;

    byte[][] accessKey = (byte[][]) qingCloud.getContext().getConfigurationValue(QingCloud.DSN_ACCESS_KEY);

    requestBuilder.setVersion(new ProtocolVersion("HTTP", 1, 1));

    requestBuilder.setUri("https://api.qingcloud.com/iaas/");

    parameter("time_stamp", qingCloud.formatIso8601Date(new Date()));
    parameter("access_key_id", new String(accessKey[0]));
    parameter("version", "1");
    parameter("signature_method", SIGNATURE_ALGORITHM);
    parameter("signature_version", "1");
}

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);
    }// ww  w .j av  a 2  s.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  ww  w .  j a v a 2  s  .c  om

    //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.nc.common.utils.HttpUtils.java

/**
 * <pre>/*from w  w  w  .  j a v  a2 s . c  o m*/
 * 1.  : http  
 * 2.  : OpenAPI 
 * </pre>
 *
 * @method Name : execOpenAPI
 * @param String subUrl, Map<String, Object> paramMap, String method
 * @return String
 * @throws Exception
 * 
 */
public String execOpenAPI(String subUrl, Map<String, Object> paramMap, String method) throws Exception {
    String result = null;
    CloseableHttpClient httpclient = HttpClients.createDefault();

    try {
        RequestBuilder requestBuilder = null;

        if ("get".equals(method)) {
            requestBuilder = RequestBuilder.get();
        } else {
            requestBuilder = RequestBuilder.post();
        }

        requestBuilder = requestBuilder.setUri(new URI(serverOpenAPI + subUrl));
        Iterator<String> iter = paramMap.keySet().iterator();
        String key = null;
        String val = null;
        while (iter.hasNext()) {
            key = iter.next();
            val = (String) paramMap.get(key);
            requestBuilder.addParameter(key, val);
        }

        HttpUriRequest httpPost = requestBuilder.build();

        if (log.isDebugEnabled()) {
            log.debug(
                    "==========================================================================================");
            log.debug("= API   : [{}]", httpPost);
            log.debug("= API   ? : [{}]", requestBuilder.getParameters());
            log.debug(
                    "==========================================================================================");
        }

        CloseableHttpResponse response = httpclient.execute(httpPost);
        StatusLine statusLine = response.getStatusLine();

        if (log.isDebugEnabled()) {
            log.debug(
                    "==========================================================================================");
            log.debug("= API  ? : [{}] =", statusLine);
            log.debug(
                    "==========================================================================================");
        }

        try {
            if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    result = EntityUtils.toString(entity, CommonConstants.DEFAULT_CHARSET);
                    if (log.isDebugEnabled()) {
                        log.debug(
                                "==========================================================================================");
                        log.debug("= API    : [{}] =", result);
                        log.debug(
                                "==========================================================================================");
                    }
                }
                EntityUtils.consume(entity);
            }
        } finally {
            response.close();
        }
    } finally {
        httpclient.close();
    }
    return result;
}

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

/**
 * Execute a given request//from ww w  . j  a  v  a  2  s.  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:cn.wanghaomiao.seimi.core.SeimiProcessor.java

@Override
public void run() {
    while (true) {
        Request request = null;/*from w  ww  . j  ava  2  s . c om*/
        try {
            request = queue.bPop(crawlerModel.getCrawlerName());
            if (request == null) {
                continue;
            }
            if (crawlerModel == null) {
                logger.error("No such crawler name:'{}'", request.getCrawlerName());
                continue;
            }
            if (request.isStop()) {
                logger.info("SeimiProcessor[{}] will stop!", Thread.currentThread().getName());
                break;
            }
            //
            if (!StructValidator.validateAnno(request)) {
                logger.warn("Request={} is illegal", JSON.toJSONString(request));
                continue;
            }
            if (!StructValidator.validateAllowRules(crawler.allowRules(), request.getUrl())) {
                logger.warn("Request={} will be dropped by allowRules=[{}]", JSON.toJSONString(request),
                        StringUtils.join(crawler.allowRules(), ","));
                continue;
            }
            if (StructValidator.validateDenyRules(crawler.denyRules(), request.getUrl())) {
                logger.warn("Request={} will be dropped by denyRules=[{}]", JSON.toJSONString(request),
                        StringUtils.join(crawler.denyRules(), ","));
                continue;
            }
            //???Request???
            if (request.getCurrentReqCount() >= request.getMaxReqCount()) {
                continue;
            }
            if (!request.isSkipDuplicateFilter() && crawlerModel.isUseUnrepeated() && queue.isProcessed(request)
                    && request.getCurrentReqCount() == 0) {
                logger.info("This request has bean processed,so current request={} will be dropped!",
                        JSON.toJSONString(request));
                continue;
            }
            queue.addProcessed(request);
            HttpClient hc;
            if (crawlerModel.isUseCookie()) {
                hc = HttpClientFactory.getHttpClient(10000, crawler.getCookieStore());
            } else {
                hc = HttpClientFactory.getHttpClient();
            }
            RequestBuilder requestBuilder = RequestGenerator.getHttpRequestBuilder(request, crawlerModel);

            HttpContext httpContext = new BasicHttpContext();
            HttpResponse httpResponse = hc.execute(requestBuilder.build(), httpContext);
            Response seimiResponse = renderResponse(httpResponse, request, httpContext);
            Matcher mm = metaRefresh.matcher(seimiResponse.getContent());
            int refreshCount = 0;
            while (!request.isUseSeimiAgent() && mm.find() && refreshCount < 3) {
                String nextUrl = mm.group(1).replaceAll("'", "");
                if (!nextUrl.startsWith("http")) {
                    String prefix = getRealUrl(httpContext);
                    nextUrl = prefix + nextUrl;
                }
                logger.info("Seimi refresh url to={} from={}", nextUrl, requestBuilder.getUri());
                requestBuilder.setUri(nextUrl);
                httpResponse = hc.execute(requestBuilder.build(), httpContext);
                seimiResponse = renderResponse(httpResponse, request, httpContext);
                mm = metaRefresh.matcher(seimiResponse.getContent());
                refreshCount += 1;
            }

            Method requestCallback = crawlerModel.getMemberMethods().get(request.getCallBack());
            if (requestCallback == null) {
                continue;
            }
            for (SeimiInterceptor interceptor : interceptors) {
                Interceptor interAnno = interceptor.getClass().getAnnotation(Interceptor.class);
                if (interAnno.everyMethod()
                        || requestCallback.isAnnotationPresent(interceptor.getTargetAnnotationClass())
                        || crawlerModel.getClazz()
                                .isAnnotationPresent(interceptor.getTargetAnnotationClass())) {
                    interceptor.before(requestCallback, seimiResponse);
                }
            }
            if (crawlerModel.getDelay() > 0) {
                TimeUnit.SECONDS.sleep(crawlerModel.getDelay());
            }
            requestCallback.invoke(crawlerModel.getInstance(), seimiResponse);
            for (SeimiInterceptor interceptor : interceptors) {
                Interceptor interAnno = interceptor.getClass().getAnnotation(Interceptor.class);
                if (interAnno.everyMethod()
                        || requestCallback.isAnnotationPresent(interceptor.getTargetAnnotationClass())
                        || crawlerModel.getClazz()
                                .isAnnotationPresent(interceptor.getTargetAnnotationClass())) {
                    interceptor.after(requestCallback, seimiResponse);
                }
            }
            logger.debug("Crawler[{}] ,url={} ,responseStatus={}", crawlerModel.getCrawlerName(),
                    request.getUrl(), httpResponse.getStatusLine().getStatusCode());
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            if (request == null) {
                continue;
            }
            if (request.getCurrentReqCount() < request.getMaxReqCount()) {
                request.incrReqCount();
                queue.push(request);
                logger.info(
                        "Request process error,req will go into queue again,url={},maxReqCount={},currentReqCount={}",
                        request.getUrl(), request.getMaxReqCount(), request.getCurrentReqCount());
            } else if (request.getCurrentReqCount() >= request.getMaxReqCount()
                    && request.getMaxReqCount() > 0) {
                crawler.handleErrorRequest(request);
            }

        }
    }
}

From source file:gobblin.writer.http.SalesforceRestWriter.java

/**
 * For single request, creates HttpUriRequest and decides post/patch operation based on input parameter.
 *
 * For batch request, add the record into JsonArray as a subrequest and only creates HttpUriRequest with POST method if it filled the batch size.
 * {@inheritDoc}//  w w  w  .  j a  v a 2 s  . c o m
 * @see gobblin.writer.http.RestJsonWriter#onNewRecord(gobblin.converter.rest.RestEntry)
 */
@Override
public Optional<HttpUriRequest> onNewRecord(RestEntry<JsonObject> record) {
    Preconditions.checkArgument(!StringUtils.isEmpty(accessToken), "Access token has not been acquired.");
    Preconditions.checkNotNull(record, "Record should not be null");

    RequestBuilder builder = null;
    JsonObject payload = null;

    if (batchSize > 1) {
        if (!batchRecords.isPresent()) {
            batchRecords = Optional.of(new JsonArray());
        }
        batchRecords.get().add(newSubrequest(record));

        if (batchRecords.get().size() < batchSize) { //No need to send. Return absent.
            return Optional.absent();
        }

        payload = newPayloadForBatch();
        builder = RequestBuilder.post().setUri(combineUrl(getCurServerHost(), batchResourcePath));
    } else {
        switch (operation) {
        case INSERT_ONLY_NOT_EXIST:
            builder = RequestBuilder.post();
            break;
        case UPSERT:
            builder = RequestBuilder.patch();
            break;
        default:
            throw new IllegalArgumentException(operation + " is not supported.");
        }
        builder.setUri(combineUrl(getCurServerHost(), record.getResourcePath()));
        payload = record.getRestEntryVal();
    }
    return Optional.of(newRequest(builder, payload));
}