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

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

Introduction

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

Prototype

public void releaseConnection() 

Source Link

Document

A convenience method to simplify migration from HttpClient 3.1 API.

Usage

From source file:org.openrepose.commons.utils.http.ServiceClient.java

private ServiceClientResponse execute(HttpRequestBase base, String... queryParameters) {
    try {//ww  w.j a v  a2s.c  o m

        HttpClient client = getClientWithBasicAuth();

        for (int index = 0; index < queryParameters.length; index = index + 2) {
            client.getParams().setParameter(queryParameters[index], queryParameters[index + 1]);
        }

        HttpResponse httpResponse = client.execute(base);
        HttpEntity entity = httpResponse.getEntity();

        InputStream stream = null;
        if (entity != null) {
            stream = new ByteArrayInputStream(RawInputStreamReader.instance().readFully(entity.getContent()));
            EntityUtils.consume(entity);
        }

        return new ServiceClientResponse(httpResponse.getStatusLine().getStatusCode(),
                httpResponse.getAllHeaders(), stream);
    } catch (ServiceClientException ex) {
        LOG.error("Failed to obtain an HTTP default client connection", ex);
    } catch (IOException ex) {
        LOG.error("Error executing request", ex);
    } finally {
        base.releaseConnection();

    }

    return new ServiceClientResponse(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, null);
}

From source file:com.twosigma.cook.jobclient.JobClient.java

private JobClientException releaseAndCreateException(HttpRequestBase httpRequest, HttpResponse httpResponse,
        final String msg, final Throwable cause) {
    StringBuilder newMsg = new StringBuilder(msg);
    if (null != httpRequest) {
        httpRequest.releaseConnection();
    }//from  w  ww .ja  v  a2  s  .  co  m
    if (null != httpResponse) {
        try {
            newMsg.append(" Response body: " + EntityUtils.toString(httpResponse.getEntity()));
        } catch (IOException e) {
        }
    }
    if (null != cause) {
        return new JobClientException(newMsg.toString(), cause);
    } else {
        return new JobClientException(newMsg.toString());
    }
}

From source file:es.tid.fiware.fiwareconnectors.cygnus.backends.hdfs.HDFSBackendImpl.java

private HttpResponse doHDFSRequest(HttpClient httpClient, String method, String url, ArrayList<Header> headers,
        StringEntity entity) throws Exception {
    HttpResponse response = null;/*from   w  w  w.  ja va  2s.  co  m*/
    HttpRequestBase request = null;

    if (method.equals("PUT")) {
        HttpPut req = new HttpPut(url);

        if (entity != null) {
            req.setEntity(entity);
        } // if

        request = req;
    } else if (method.equals("POST")) {
        HttpPost req = new HttpPost(url);

        if (entity != null) {
            req.setEntity(entity);
        } // if

        request = req;
    } else if (method.equals("GET")) {
        request = new HttpGet(url);
    } else {
        throw new CygnusRuntimeError("HTTP method not supported: " + method);
    } // if else

    if (headers != null) {
        for (Header header : headers) {
            request.setHeader(header);
        } // for
    } // if

    logger.debug("HDFS request: " + request.toString());

    try {
        response = httpClient.execute(request);
    } catch (IOException e) {
        throw new CygnusPersistenceError(e.getMessage());
    } // try catch

    request.releaseConnection();
    logger.debug("HDFS response: " + response.getStatusLine().toString());
    return response;
}

From source file:org.nebula.framework.client.NebulaRestClient.java

private <T> T execute(HttpRequestBase httpRequest, Class responseClass) throws Exception {

    try {/*  w w w  .j av  a  2s . c  o m*/
        HttpResponse res = client.execute(target, httpRequest,
                createPreemptiveBasicAuthentication(accessId, secretKey));

        HttpEntity entity = res.getEntity();

        String content = EntityUtils.toString(entity);

        if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

            logger.debug("content=" + content);

            T t = (T) toObject(content, responseClass);

            return t;
        } else if (res.getStatusLine().getStatusCode() == HttpStatus.SC_BAD_REQUEST) {
            logger.error("Illegal argument:" + content);
            throw new IllegalArgumentException(content);
        } else {
            logger.error("Error:" + content);

            // TODO: more specific info
            throw new Exception("error");
        }
    } catch (Exception e) {
        logger.error("Failed to execute http request.", e);
        throw e;
    } finally {
        httpRequest.releaseConnection();
    }
}

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

/**
 * Fetch http API input stream cache./*from w  ww .  ja va 2  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:org.lokra.seaweedfs.core.Connection.java

/**
 * Fetch http API json result.//from   w w  w .j a va 2  s. 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:org.plos.crepo.dao.ContentRepoBaseDao.java

protected CloseableHttpResponse executeRequest(HttpRequestBase request, ErrorType errorType) {
    CloseableHttpResponse response;/*from w w  w. j a  v  a2  s.c o  m*/
    try {
        response = accessConfig.open(request);
    } catch (IOException e) {
        getLog().error("Error handling the response, uri: " + request.getURI().toString() + " repoMessage: ",
                e);
        throw new ContentRepoException.ContentRepoExceptionBuilder(errorType).baseException(e)
                .url(request.getURI().toString()).build();
    }

    try {
        final int statusCode = response.getStatusLine().getStatusCode();

        if (statusCode == HttpStatus.SC_NOT_FOUND) {
            throw new NotFoundException(HttpResponseUtil.getErrorMessage(response));
        } else if (statusCode != HttpStatus.SC_OK && statusCode != HttpStatus.SC_CREATED) {
            final String cause = HttpResponseUtil.getErrorMessage(response);

            getLog().error("uri: " + request.getURI().toString() + " repoMessage: " + cause);
            throw new ContentRepoException.ContentRepoExceptionBuilder(errorType)
                    .url(request.getURI().toString()).repoMessage(cause).build();
        }

        return response;

    } catch (RuntimeException e) {
        IOUtils.closeQuietly(response);
        request.releaseConnection();
        throw e;
    }
}

From source file:mobi.jenkinsci.ci.JenkinsCIPlugin.java

protected byte[] retrieveUrl(final String userAgent, final String linkUrl,
        final HashMap<String, HeaderElement[]> contentHeaders, final Object ctx) throws Exception {
    final JenkinsClient client = (JenkinsClient) ctx;
    final HttpRequestBase get = getNewHttpRequest(null, linkUrl);
    if (userAgent != null) {
        get.setHeader("User-Agent", userAgent);
    }//  w w w  .j  av a  2  s . c  om
    final HttpResponse response = client.http.execute(get);
    try {
        final int status = response.getStatusLine().getStatusCode();
        if (status != HttpURLConnection.HTTP_OK) {
            throw new IOException("HTTP- " + get.getMethod() + " " + linkUrl + " returned status " + status);
        }

        if (contentHeaders != null) {
            for (final Header header : response.getAllHeaders()) {
                contentHeaders.put(header.getName(), header.getElements());
            }
        }

        final ByteArrayOutputStream out = new ByteArrayOutputStream();
        final InputStream content = response.getEntity().getContent();
        IOUtils.copy(content, out);
        content.close();
        return out.toByteArray();
    } finally {
        get.releaseConnection();
    }
}

From source file:org.neo4j.ogm.session.transaction.TransactionManager.java

private HttpResponse executeRequest(HttpRequestBase request) {

    try {/*from   w w  w  . j a va2  s . com*/

        request.setHeader(new BasicHeader("Accept", "application/json;charset=UTF-8"));
        HttpRequestAuthorization.authorize(request, credentials);

        HttpResponse response = httpClient.execute(request);
        StatusLine statusLine = response.getStatusLine();

        logger.debug("Status code: {}", statusLine.getStatusCode());

        if (statusLine.getStatusCode() >= 300) {
            throw new HttpResponseException(statusLine.getStatusCode(), statusLine.getReasonPhrase());
        }

        HttpEntity responseEntity = response.getEntity();
        if (responseEntity != null) {
            String responseText = EntityUtils.toString(responseEntity);
            logger.debug(responseText);
            EntityUtils.consume(responseEntity);
            if (responseText.contains("\"errors\":[{") || responseText.contains("\"errors\": [{")) {
                throw new ErrorsException(responseText);
            }
        }
        return response;
    }

    catch (Exception e) {
        throw new ResultProcessingException("Failed to execute request: ", e);
    }

    // always clean up the connection and the thread-local transaction instance;
    finally {
        request.releaseConnection();
        transaction.remove();
    }
}