Example usage for org.apache.http.client.methods HttpUriRequest addHeader

List of usage examples for org.apache.http.client.methods HttpUriRequest addHeader

Introduction

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

Prototype

void addHeader(String str, String str2);

Source Link

Usage

From source file:com.pdfread.standardreader.net.AsyncHttpClient.java

protected void sendRequest(DefaultHttpClient client, HttpContext httpContext, HttpUriRequest uriRequest,
        String contentType, AsyncHttpResponseHandler responseHandler, Context context) {

    if (contentType != null) {
        uriRequest.addHeader("Content-Type", contentType);
    }//w  ww. j a  v  a  2  s .c  o m

    Future<?> request = threadPool
            .submit(new AsyncHttpRequest(client, httpContext, uriRequest, responseHandler));

    if (context != null) {
        // Add request to request map
        List<WeakReference<Future<?>>> requestList = requestMap.get(context);
        if (requestList == null) {
            requestList = new LinkedList<WeakReference<Future<?>>>();
            requestMap.put(context, requestList);
        }

        requestList.add(new WeakReference<Future<?>>(request));

        // TODO: Remove dead weakrefs from requestLists?
    }
}

From source file:com.floragunn.searchguard.HeaderAwareJestHttpClient.java

public Tuple<JestResult, HttpResponse> executeE(final Action clientRequest) throws IOException {

    final String elasticSearchRestUrl = getRequestURL(getElasticSearchServer(), clientRequest.getURI());

    final HttpUriRequest request = constructHttpMethod(clientRequest.getRestMethodName(), elasticSearchRestUrl,
            clientRequest.getData(gson));

    log.debug("reqeust method and restUrl - " + clientRequest.getRestMethodName() + " " + elasticSearchRestUrl);

    // add headers added to action
    if (!clientRequest.getHeaders().isEmpty()) {
        for (final Iterator<Entry> it = clientRequest.getHeaders().entrySet().iterator(); it.hasNext();) {
            final Entry header = it.next();
            request.addHeader((String) header.getKey(), header.getValue().toString());
        }//from ww w  .  jav  a 2 s .c  om
    }

    final HttpResponse response = httpClient.execute(request);

    // If head method returns no content, it is added according to response code thanks to https://github.com/hlassiege
    if (request.getMethod().equalsIgnoreCase("HEAD")) {
        if (response.getEntity() == null) {
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                response.setEntity(new StringEntity("{\"ok\" : true, \"found\" : true}"));
            } else if (response.getStatusLine().getStatusCode() == HttpStatus.SC_NOT_FOUND) {
                response.setEntity(new StringEntity("{\"ok\" : false, \"found\" : false}"));
            }
        }
    }
    return new Tuple(deserializeResponse(response, clientRequest), response);
}

From source file:com.soundcloud.playerapi.ApiWrapper.java

/** Forces JSON */
protected HttpUriRequest addAcceptHeader(HttpUriRequest request) {
    if (!request.containsHeader("Accept")) {
        request.addHeader("Accept", getDefaultContentType());
    }/*from  w  ww  .  java 2  s .c om*/
    return request;
}

From source file:com.chuannuo.tangguo.net.TGHttpClient.java

protected void sendRequest(DefaultHttpClient client, HttpContext httpContext, HttpUriRequest uriRequest,
        String contentType, TGHttpResponseHandler responseHandler, Context context) {
    if (contentType != null) {
        uriRequest.addHeader("Content-Type", contentType);
    }// www  . ja  v  a2 s  .  c  o m

    Future<?> request = threadPool
            .submit(new TGHttpRequest(client, httpContext, uriRequest, responseHandler, responseUrl));

    if (context != null) {
        // Add request to request map
        List<WeakReference<Future<?>>> requestList = requestMap.get(context);
        if (requestList == null) {
            requestList = new LinkedList<WeakReference<Future<?>>>();
            requestMap.put(context, requestList);
        }

        requestList.add(new WeakReference<Future<?>>(request));

        // TODO: Remove dead weakrefs from requestLists?
    }
}

From source file:com.petalmd.armor.HeaderAwareJestHttpClient.java

public Tuple<JestResult, HttpResponse> executeE(final Action clientRequest) throws IOException {

    final String elasticSearchRestUrl = getRequestURL(getNextServer(), clientRequest.getURI());

    final HttpUriRequest request = constructHttpMethod(clientRequest.getRestMethodName(), elasticSearchRestUrl,
            clientRequest.getData(gson));

    log.debug("reqeust method and restUrl - " + clientRequest.getRestMethodName() + " " + elasticSearchRestUrl);

    // add headers added to action
    if (!clientRequest.getHeaders().isEmpty()) {
        for (final Iterator<Entry> it = clientRequest.getHeaders().entrySet().iterator(); it.hasNext();) {
            final Entry header = it.next();
            request.addHeader((String) header.getKey(), header.getValue().toString());
        }//from  w  w  w  . j ava  2s. co m
    }

    final HttpResponse response = httpClient.execute(request);

    // If head method returns no content, it is added according to response code thanks to https://github.com/hlassiege
    if (request.getMethod().equalsIgnoreCase("HEAD")) {
        if (response.getEntity() == null) {
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                response.setEntity(new StringEntity("{\"ok\" : true, \"found\" : true}"));
            } else if (response.getStatusLine().getStatusCode() == HttpStatus.SC_NOT_FOUND) {
                response.setEntity(new StringEntity("{\"ok\" : false, \"found\" : false}"));
            }
        }
    }
    return new Tuple(deserializeResponse(response, clientRequest), response);
}

From source file:org.graphity.core.util.jena.HttpOp.java

private static void exec(String url, HttpUriRequest request, String acceptHeader, HttpResponseHandler handler,
        HttpClient httpClient, HttpContext httpContext, HttpAuthenticator authenticator) {
    try {//from  w  ww. j av  a 2 s . c  o m
        if (handler == null)
            // This cleans up. 
            handler = nullHandler;

        long id = counter.incrementAndGet();
        String requestURI = determineRequestURI(url);
        String baseURI = determineBaseIRI(url);
        if (log.isDebugEnabled())
            log.debug(format("[%d] %s %s", id, request.getMethod(), request.getURI().toString()));
        // Accept
        if (acceptHeader != null)
            request.addHeader(HttpNames.hAccept, acceptHeader);

        // Prepare and execute
        httpClient = ensureClient(httpClient, authenticator);
        httpContext = ensureContext(httpContext);
        applyAuthentication(asAbstractClient(httpClient), url, httpContext, authenticator);
        HttpResponse response = httpClient.execute(request, httpContext);

        // Response
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if (HttpSC.isClientError(statusCode) || HttpSC.isServerError(statusCode)) {
            log.debug(format("[%d] %s %s", id, statusLine.getStatusCode(), statusLine.getReasonPhrase()));
            // Error responses can have bodies so it is important to clear up. 
            EntityUtils.consume(response.getEntity());
            throw new HttpException(statusLine.getStatusCode(), statusLine.getReasonPhrase());
        }
        // Redirects are followed by HttpClient.
        if (handler != null)
            handler.handle(baseURI, response);
    } catch (IOException ex) {
        throw new HttpException(ex);
    }
}

From source file:org.mule.modules.quickbooks.windows.api.DefaultQuickBooksWindowsClient.java

/**
 * Returns all the results from QB// ww w .j  a v a 2  s .c o m
 * 
 * @return List with all the results
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public Iterable findObjects(final OAuthCredentials credentials, final WindowsEntityType type, Integer startPage,
        Integer chunkSize, final Object query) {
    Validate.notNull(type);

    List<Object> listOfResults = new ArrayList<Object>();
    Boolean hasMoreResults = true;
    Boolean externalPagination = false;
    Integer pageNumber = 1;

    if (startPage != null && chunkSize != null) {
        setResultsPerPage(chunkSize);
        pageNumber = startPage;
        externalPagination = true;
    }

    HttpUriRequest httpRequest;
    Object responseObject;

    String str = String.format("%s/%s/v2/%s", credentials.getBaseUri(), type.getResouceName(),
            credentials.getRealmId());

    while (hasMoreResults) {
        httpRequest = new HttpPost(str);
        httpRequest.addHeader("Content-Type", "text/xml");

        ((QueryBase) query).setStartPage(BigInteger.valueOf(pageNumber));
        ((QueryBase) query).setChunkSize(getResultsPerPage());

        prepareToPost(query, httpRequest);

        try {
            responseObject = makeARequestToQuickbooks(httpRequest, credentials, false);
            if (responseObject instanceof ErrorResponse) {
                throw new QuickBooksRuntimeException(new ErrorInfo(responseObject));
            }
        } catch (QuickBooksRuntimeException e) {
            if (e.isAExpiredTokenFault()) {
                destroyAccessToken(credentials);
                responseObject = makeARequestToQuickbooks(httpRequest, credentials, false);
            } else {
                throw e;
            }
        }

        List intuitList = getListFromIntuitResponse(responseObject, type);

        if (intuitList != null) {
            listOfResults.addAll(intuitList);
            hasMoreResults = (intuitList.size() >= getResultsPerPage()) && !externalPagination;
            pageNumber++;
        } else {
            hasMoreResults = false;
        }
    }

    return listOfResults;
}

From source file:com.github.pascalgn.jiracli.web.HttpClient.java

private <T> T doExecute(HttpUriRequest request, boolean retry, Function<HttpEntity, T> function) {
    LOGGER.debug("Calling URL: {} [{}]", request.getURI(), request.getMethod());

    // disable XSRF check:
    if (!request.containsHeader("X-Atlassian-Token")) {
        request.addHeader("X-Atlassian-Token", "nocheck");
    }//from   ww w  .  j  a  v a2s. c  o  m

    HttpResponse response;
    try {
        response = httpClient.execute(request, httpClientContext);
    } catch (IOException e) {
        if (Thread.interrupted()) {
            LOGGER.trace("Could not call URL: {}", request.getURI(), e);
            throw new InterruptedError();
        } else {
            throw new IllegalStateException("Could not call URL: " + request.getURI(), e);
        }
    }

    LOGGER.debug("Response received ({})", response.getStatusLine().toString().trim());

    HttpEntity entity = response.getEntity();
    try {
        if (Thread.interrupted()) {
            throw new InterruptedError();
        }

        int statusCode = response.getStatusLine().getStatusCode();
        if (isSuccess(statusCode)) {
            T result;
            try {
                result = function.apply(entity, Hint.none());
            } catch (NotAuthenticatedException e) {
                if (retry) {
                    resetAuthentication();
                    setCredentials();
                    return doExecute(request, false, function);
                } else {
                    throw e.getCause();
                }
            } catch (RuntimeException e) {
                if (Thread.interrupted()) {
                    LOGGER.trace("Could not call URL: {}", request.getURI(), e);
                    throw new InterruptedError();
                } else {
                    throw e;
                }
            }

            if (Thread.interrupted()) {
                throw new InterruptedError();
            }

            return result;
        } else {
            if (statusCode == HttpURLConnection.HTTP_UNAUTHORIZED) {
                resetAuthentication();
                if (retry) {
                    setCredentials();
                    return doExecute(request, false, function);
                } else {
                    String error = readErrorResponse(request.getURI(), entity);
                    LOGGER.debug("Unauthorized [401]: {}", error);
                    throw new AccessControlException("Unauthorized [401]: " + request.getURI());
                }
            } else if (statusCode == HttpURLConnection.HTTP_FORBIDDEN) {
                resetAuthentication();
                checkAccountLocked(response);
                if (retry) {
                    setCredentials();
                    return doExecute(request, false, function);
                } else {
                    throw new AccessControlException("Forbidden [403]: " + request.getURI());
                }
            } else {
                String status = response.getStatusLine().toString().trim();
                String message;
                if (entity == null) {
                    message = status;
                } else {
                    String error = readErrorResponse(request.getURI(), entity);
                    message = status + (error.isEmpty() ? "" : ": " + error);
                }

                if (Thread.interrupted()) {
                    throw new InterruptedError();
                }

                if (statusCode == HttpURLConnection.HTTP_NOT_FOUND) {
                    throw new NoSuchElementException(message);
                } else {
                    throw new IllegalStateException(message);
                }
            }
        }
    } finally {
        EntityUtils.consumeQuietly(entity);
    }
}

From source file:com.createtank.payments.coinbase.RequestClient.java

private static JsonObject call(CoinbaseApi api, String method, RequestVerb verb, Map<String, String> params,
        boolean retry, String accessToken) throws IOException {
    if (api.allowSecure()) {

        HttpClient client = HttpClientBuilder.create().build();
        String url = BASE_URL + method;
        HttpUriRequest request = null;

        if (verb == RequestVerb.POST || verb == RequestVerb.PUT) {
            switch (verb) {
            case POST:
                request = new HttpPost(url);
                break;
            case PUT:
                request = new HttpPut(url);
                break;
            default:
                throw new RuntimeException("RequestVerb not implemented: " + verb);
            }/*from  w w  w.j  a  v  a 2 s  .  co  m*/

            List<BasicNameValuePair> paramsBody = new ArrayList<BasicNameValuePair>();

            if (params != null) {
                List<BasicNameValuePair> convertedParams = convertParams(params);
                paramsBody.addAll(convertedParams);
            }

            ((HttpEntityEnclosingRequestBase) request).setEntity(new UrlEncodedFormEntity(paramsBody, "UTF-8"));
        } else {
            if (params != null) {
                url = url + "?" + createRequestParams(params);
            }

            if (verb == RequestVerb.GET) {
                request = new HttpGet(url);
            } else if (verb == RequestVerb.DELETE) {
                request = new HttpDelete(url);
            }
        }
        if (request == null)
            return null;

        if (accessToken != null)
            request.addHeader("Authorization", String.format("Bearer %s", accessToken));
        System.out.println("auth header: " + request.getFirstHeader("Authorization"));
        HttpResponse response = client.execute(request);
        int code = response.getStatusLine().getStatusCode();

        if (code == 401) {
            if (retry) {
                api.refreshAccessToken();
                call(api, method, verb, params, false, api.getAccessToken());
            } else {
                throw new IOException("Account is no longer valid");
            }
        } else if (code != 200) {
            throw new IOException("HTTP response " + code + " to request " + method);
        }

        String responseString = EntityUtils.toString(response.getEntity());
        if (responseString.startsWith("[")) {
            // Is an array
            responseString = "{response:" + responseString + "}";
        }

        JsonParser parser = new JsonParser();
        JsonObject resp = (JsonObject) parser.parse(responseString);
        System.out.println(resp.toString());
        return resp;
    }

    String paramStr = createRequestParams(params);
    String url = BASE_URL + method;

    if (paramStr != null && verb == RequestVerb.GET || verb == RequestVerb.DELETE)
        url += "?" + paramStr;

    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
    conn.setRequestMethod(verb.name());

    if (accessToken != null)
        conn.setRequestProperty("Authorization", String.format("Bearer %s", accessToken));

    if (verb != RequestVerb.GET && verb != RequestVerb.DELETE && paramStr != null) {
        conn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
        writer.write(paramStr);
        writer.flush();
        writer.close();
    }

    int code = conn.getResponseCode();
    if (code == 401) {

        if (retry) {
            api.refreshAccessToken();
            return call(api, method, verb, params, false, api.getAccessToken());
        } else {
            throw new IOException("Account is no longer valid");
        }

    } else if (code != 200) {
        throw new IOException("HTTP response " + code + " to request " + method);
    }

    String responseString = getResponseBody(conn.getInputStream());
    if (responseString.startsWith("[")) {
        responseString = "{response:" + responseString + "}";
    }

    JsonParser parser = new JsonParser();
    return (JsonObject) parser.parse(responseString);
}