Example usage for org.apache.http.client.methods HttpRequestBase setHeader

List of usage examples for org.apache.http.client.methods HttpRequestBase setHeader

Introduction

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

Prototype

public void setHeader(String str, String str2) 

Source Link

Usage

From source file:com.rackspacecloud.client.service_registry.clients.BaseClient.java

protected ClientResponse performRequest(String path, List<NameValuePair> params, HttpRequestBase method,
        boolean parseAsJson, Type responseType, boolean reAuthenticate, int retryCount) throws Exception {
    int statusCode;

    this.authClient.refreshToken(reAuthenticate);

    String url = (this.apiUrl + "/" + this.authClient.getAuthToken().getTenant().get("id") + path);

    if (params != null) {
        url += "?" + URLEncodedUtils.format(params, "UTF-8");
    }/*from  w  w w.ja  va2 s . com*/

    method.setURI(new URI(url));
    method.setHeader("User-Agent", Client.VERSION);
    method.setHeader("X-Auth-Token", this.authClient.getAuthToken().getId());

    HttpResponse response = this.client.execute(method);
    statusCode = response.getStatusLine().getStatusCode();

    if ((statusCode == 401) && (retryCount < MAX_401_RETRIES)) {
        retryCount++;
        logger.info("API server returned 401, re-authenticating and re-trying the request");
        return this.performRequest(path, params, method, parseAsJson, responseType, true, retryCount);
    }

    return new ClientResponse(response, parseAsJson, responseType);
}

From source file:org.thevortex.lighting.jinks.client.WinkClient.java

/**
 * Execute the message, retrying on token renewals.
 *
 * @param message the message/* www. j a va 2  s .  co  m*/
 * @return it's response
 * @throws IOException well...
 */
protected synchronized JsonNode execute(HttpRequestBase message, String payload) throws IOException {
    // have we authenticated?
    if (sessionToken == null) {
        doAuthenticate();
    }

    logger.debug("Requesting {}", message.getURI());
    if (payload != null) {
        logger.debug("With payload: {}", payload);
        ((HttpEntityEnclosingRequestBase) message).setEntity(new StringEntity(payload));
    }

    message.setHeader("Authorization", "Bearer " + sessionToken);
    message.setHeader("Content-Type", "application/json");
    message.setHeader("User-Agent", appName);

    for (int i = 0; i < AUTH_RETRY; i++) {
        logger.debug("Request {}", (i + 1));
        try (CloseableHttpResponse response = getClient().execute(winkHost, message)) {
            StatusLine status = response.getStatusLine();

            // because we could get error payloads, extract the response if there is any to be had
            HttpEntity entity = response.getEntity();
            String responsePayload = entity == null ? null : EntityUtils.toString(entity);
            int statusCode = status.getStatusCode();
            logger.debug("Received: code = {}\n{}", status, responsePayload);

            switch (statusCode) {
            case 200: // OK
            case 201: // created
            case 202: // accepted (processing not complete)
            {
                // if no response payload, return none
                if (entity == null) {
                    logger.debug("No response payload for code {}", statusCode);
                    return null;
                }
                return payloadMapper.readValue(responsePayload, ObjectNode.class);
            }
            case 204: // no content
                return null;
            case 401:
                break;
            default:
                logger.error("Response payload on error {}:\n{}", statusCode, responsePayload);
                handleErrorCodes(status);
            }
        }
        // interesting new wrinkle...
        catch (NoHttpResponseException e) {
            logger.warn("Stale connection - {}: retrying", e.getLocalizedMessage());
            i--;
        }

        // attempt to renew the token
        doRenewAuth();
    }
    throw new AuthenticationException("Unauthorized");
}

From source file:com.serphacker.serposcope.scraper.http.ScrapClient.java

protected void initializeRequest(HttpRequestBase request, HttpClientContext context) {
    if (request.getFirstHeader("user-agent") == null) {
        request.setHeader("User-Agent", useragent);
    }//from  w  ww.  j  ava  2 s.  c o m

    for (Header requestHeader : requestHeaders) {
        request.setHeader(requestHeader);
    }

    RequestConfig.Builder configBuilder = RequestConfig
            .copy(request.getConfig() == null ? RequestConfig.DEFAULT : request.getConfig());

    if (timeoutMS != null) {
        configBuilder.setConnectTimeout(timeoutMS);
        configBuilder.setConnectionRequestTimeout(timeoutMS);
        configBuilder.setSocketTimeout(timeoutMS);
    }

    if (maxRedirect == 0) {
        configBuilder.setRedirectsEnabled(false);
    } else {
        configBuilder.setMaxRedirects(maxRedirect);
    }

    RequestConfig config = configBuilder.build();

    context.setAttribute(HttpClientContext.REQUEST_CONFIG, config);
    request.setConfig(config);
}

From source file:org.lokra.seaweedfs.core.Connection.java

/**
 * Fetch http API input stream cache.//from   w  ww .j  a v a2  s . c o m
 *
 * @param request Http request.
 * @return Stream fetch by http response.
 * @throws IOException Http connection is fail or server response within some error message.
 */
StreamResponse fetchStreamCacheByRequest(HttpRequestBase request) throws IOException {
    CloseableHttpResponse response = null;
    request.setHeader("Connection", "close");
    StreamResponse cache;

    try {
        response = httpClient.execute(request, HttpClientContext.create());
        HttpEntity entity = response.getEntity();
        cache = new StreamResponse(entity.getContent(), response.getStatusLine().getStatusCode());
        EntityUtils.consume(entity);
    } finally {
        if (response != null) {
            try {
                response.close();
            } catch (IOException ignored) {
            }
        }
        request.releaseConnection();
    }
    return cache;
}

From source file:bixo.fetcher.SimpleHttpFetcher.java

public FetchedResult get(String url, List<Tuple2<?, ?>> headers) throws BaseFetchException {
    HttpRequestBase request = new HttpGet();
    request.setHeader("User-Agent", _userAgent.getUserAgentString());
    return fetch(request, url, null, headers);
}

From source file:org.lokra.seaweedfs.core.Connection.java

/**
 * Fetch http API json result./* w  w w.  j av a 2s  . c  o m*/
 *
 * @param request Http request.
 * @return Json fetch by http response.
 * @throws IOException Http connection is fail or server response within some error message.
 */
JsonResponse fetchJsonResultByRequest(HttpRequestBase request) throws IOException {
    CloseableHttpResponse response = null;
    request.setHeader("Connection", "close");
    JsonResponse jsonResponse = null;

    try {
        response = httpClient.execute(request, HttpClientContext.create());
        HttpEntity entity = response.getEntity();
        jsonResponse = new JsonResponse(EntityUtils.toString(entity), response.getStatusLine().getStatusCode());
        EntityUtils.consume(entity);
    } finally {
        if (response != null) {
            try {
                response.close();
            } catch (IOException ignored) {
            }
        }
        request.releaseConnection();
    }

    if (jsonResponse.json.contains("\"error\":\"")) {
        Map map = objectMapper.readValue(jsonResponse.json, Map.class);
        final String errorMsg = (String) map.get("error");
        if (errorMsg != null)
            throw new SeaweedfsException(errorMsg);
    }

    return jsonResponse;
}

From source file:bixo.fetcher.SimpleHttpFetcher.java

public FetchedResult post(String url, List<Tuple2<?, ?>> data, List<Tuple2<?, ?>> headers)
        throws BaseFetchException {
    HttpRequestBase request = new HttpPost();
    request.setHeader("User-Agent", _userAgent.getUserAgentString());
    return fetch(request, url, data, headers);
}

From source file:com.oakesville.mythling.util.HttpHelper.java

private byte[] retrieveWithDigestAuth() throws IOException {
    AndroidHttpClient httpClient = null;
    InputStream is = null;//from  www  .j a v  a 2 s.co m

    try {
        long startTime = System.currentTimeMillis();

        httpClient = AndroidHttpClient.newInstance("Android");
        HttpParams httpParams = httpClient.getParams();
        HttpConnectionParams.setConnectionTimeout(httpParams, getConnectTimeout());
        HttpConnectionParams.setSoTimeout(httpParams, getReadTimeout());

        HttpHost host = new HttpHost(url.getHost(), url.getPort(), url.getProtocol());

        HttpRequestBase job;
        if (method == Method.Get)
            job = new HttpGet(url.toString());
        else if (method == Method.Post) {
            job = new HttpPost(url.toString());
            ((HttpPost) job).setEntity(new ByteArrayEntity("".getBytes()));
        } else
            throw new IOException("Unsupported HTTP method: " + method);

        job.setHeader("Accept", "application/json");
        HttpResponse response = null;
        try {
            response = httpClient.execute(host, job,
                    getDigestAuthContext(url.getHost(), url.getPort(), user, password));
        } catch (IOException ex) {
            Log.e(TAG, ex.getMessage(), ex);
            if (ipRetrieval != null) {
                // try and retrieve the backend IP
                String ip = retrieveBackendIp();
                host = new HttpHost(ip, url.getPort(), url.getProtocol());
                response = httpClient.execute(host, job,
                        getDigestAuthContext(ip, url.getPort(), user, password));
                // save the retrieved ip as the external static one
                Editor ed = sharedPrefs.edit();
                ed.putString(AppSettings.MYTH_BACKEND_EXTERNAL_HOST, ip);
                ed.commit();
            } else {
                throw ex;
            }
        }
        is = response.getEntity().getContent();

        return extractResponseBytes(is, startTime);
    } finally {
        try {
            if (is != null)
                is.close();
            if (httpClient != null)
                httpClient.close();
        } catch (IOException ex) {
            Log.e(TAG, ex.getMessage(), ex);
        }
    }
}

From source file:anhttpclient.impl.DefaultWebBrowser.java

/**
 * Add default headers to web request and
 * then add specific headers for current request
 *
 * @param httpMethodBase http method for adding headers
 * @param methodHeaders  headers specific for current request
 *///from  w  w w.j  ava2 s .  c  o m
private void setHeaders(final HttpRequestBase httpMethodBase, final Map<String, String> methodHeaders) {

    //set default headers
    for (Map.Entry<String, String> entry : defaultHeaders.entrySet()) {
        httpMethodBase.setHeader(entry.getKey(), entry.getValue());
    }

    //set method headers
    for (Map.Entry<String, String> entry : methodHeaders.entrySet()) {
        httpMethodBase.setHeader(entry.getKey(), entry.getValue());
    }
}

From source file:li.zeitgeist.api.ZeitgeistApi.java

/**
 * Set required Headers for the API, json accept only and authentication.
 * @param request/*  w w  w  . j  a v  a 2s  . c  om*/
 */
private void setHeaders(HttpRequestBase request) {
    request.setHeader("Accept", "application/json");
    if (this.email != null && this.apiSecret != null && this.email.length() > 0
            && this.apiSecret.length() > 0) {
        request.setHeader("X-API-Auth", this.email + "|" + this.apiSecret);
    }
}