Example usage for org.apache.http.client.methods CloseableHttpResponse getStatusLine

List of usage examples for org.apache.http.client.methods CloseableHttpResponse getStatusLine

Introduction

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

Prototype

StatusLine getStatusLine();

Source Link

Usage

From source file:io.undertow.js.test.security.JavascriptSecurityTestCase.java

@Test
public void testAuthentication() throws IOException, ScriptException {
    final TestHttpClient client = new TestHttpClient();
    try {/*from w  ww  .  j av  a2  s.  c o  m*/

        HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/servletContext/all-auth1");
        CloseableHttpResponse result = client.execute(get);
        Assert.assertEquals(StatusCodes.UNAUTHORIZED, result.getStatusLine().getStatusCode());
        Header[] values = result.getHeaders(WWW_AUTHENTICATE.toString());
        String header = getAuthHeader(BASIC, values);
        assertEquals(BASIC + " realm=\"Test Realm\"", header);
        HttpClientUtils.readResponse(result);

        get = new HttpGet(DefaultServer.getDefaultServerURL() + "/servletContext/all-auth1");
        get.addHeader(AUTHORIZATION.toString(),
                BASIC + " " + FlexBase64.encodeString("user1:password1".getBytes(), false));
        result = client.execute(get);
        Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());

        Assert.assertEquals("ok", HttpClientUtils.readResponse(result));

        get = new HttpGet(DefaultServer.getDefaultServerURL() + "/servletContext/all-auth2");
        get.addHeader(AUTHORIZATION.toString(),
                BASIC + " " + FlexBase64.encodeString("user2:password2".getBytes(), false));
        result = client.execute(get);
        Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());

        Assert.assertEquals("ok", HttpClientUtils.readResponse(result));

        get = new HttpGet(DefaultServer.getDefaultServerURL() + "/servletContext/admin");
        get.addHeader(AUTHORIZATION.toString(),
                BASIC + " " + FlexBase64.encodeString("user1:password1".getBytes(), false));
        result = client.execute(get);
        Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());

        Assert.assertEquals("ok", HttpClientUtils.readResponse(result));
        get = new HttpGet(DefaultServer.getDefaultServerURL() + "/servletContext/admin");
        get.addHeader(AUTHORIZATION.toString(),
                BASIC + " " + FlexBase64.encodeString("user2:password2".getBytes(), false));
        result = client.execute(get);
        Assert.assertEquals(StatusCodes.FORBIDDEN, result.getStatusLine().getStatusCode());
        HttpClientUtils.readResponse(result);
    } finally {
        client.getConnectionManager().shutdown();
    }
}

From source file:org.palo.it.devoxx.raspberry.rest.Sender.java

private int sendPost(final HttpPost httppost) throws UnsupportedEncodingException, IOException {
    final CloseableHttpClient httpclient = HttpClients.createDefault();

    int resultCode = 500;

    CloseableHttpResponse response = null;
    try {//from w  w w .j  a v  a 2s. c o m
        response = httpclient.execute(httppost);
        resultCode = response.getStatusLine().getStatusCode();
    } catch (final IOException e) {
        LOGGER.error(e.getMessage(), e);
    } finally {
        if (response != null) {
            response.close();
        }
    }
    httpclient.close();
    return resultCode;
}

From source file:com.threatconnect.sdk.conn.HttpRequestExecutor.java

/**
 * Execute an HTTP request and return the raw input stream.  <i>Caller is responsible for closing InputStream.</i>
 *
 * @param path url to issue request to//from  w  w w .  j av a2s.  com
 * @return raw input stream from response
 * @throws IOException On error
 */
@Override
public InputStream executeDownloadByteStream(String path) throws IOException {
    if (this.conn.getConfig() == null) {
        throw new IllegalStateException("Can't execute HTTP request when configuration is undefined.");
    }

    InputStream stream = null;

    String fullPath = this.conn.getConfig().getTcApiUrl() + path.replace("/api/", "/");

    logger.trace("Calling GET: " + fullPath);
    HttpRequestBase httpBase = getBase(fullPath, HttpMethod.GET);

    String headerPath = httpBase.getURI().getRawPath() + "?" + httpBase.getURI().getRawQuery();
    ConnectionUtil.applyHeaders(this.conn.getConfig(), httpBase, httpBase.getMethod(), headerPath,
            conn.getConfig().getContentType(), ContentType.APPLICATION_OCTET_STREAM.toString());
    logger.trace("Request: " + httpBase.getRequestLine());
    logger.trace("Headers: " + Arrays.toString(httpBase.getAllHeaders()));
    CloseableHttpResponse response = this.conn.getApiClient().execute(httpBase);

    logger.trace(response.getStatusLine().toString());
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        stream = entity.getContent();
        logger.trace(String.format("Result stream size: %d, encoding: %s", entity.getContentLength(),
                entity.getContentEncoding()));
    }
    return stream;
}

From source file:ar.edu.ubp.das.src.chat.actions.MessagesListAction.java

@Override
public ForwardConfig execute(ActionMapping mapping, DynaActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws SQLException, RuntimeException {
    try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {

        Gson gson = new Gson();

        //prepare http get
        SalaBean sala = (SalaBean) request.getSession().getAttribute("sala");
        String login_tmst = (String) request.getSession().getAttribute("login_tmst");
        String authToken = String.valueOf(request.getSession().getAttribute("token"));

        URIBuilder builder = new URIBuilder();
        builder.setScheme("http").setHost("25.136.78.82").setPort(8080)
                .setPath("/mensajes/sala/" + sala.getId());
        builder.setParameter("fecha_desde", login_tmst);

        HttpGet getRequest = new HttpGet();
        getRequest.setURI(builder.build());
        getRequest.addHeader("Authorization", "BEARER " + authToken);
        getRequest.addHeader("accept", "application/json; charset=ISO-8859-1");

        CloseableHttpResponse getResponse = httpClient.execute(getRequest);
        HttpEntity responseEntity = getResponse.getEntity();
        StatusLine responseStatus = getResponse.getStatusLine();
        String restResp = EntityUtils.toString(responseEntity);

        if (responseStatus.getStatusCode() != 200) {
            throw new RuntimeException(restResp);
        }/*ww w . ja va  2 s .  co m*/

        //parse message data from response
        Type listType = new TypeToken<LinkedList<MensajeBean>>() {
        }.getType();
        List<MensajeBean> mensajes = gson.fromJson(restResp, listType);

        if (!mensajes.isEmpty()) {
            request.getSession().setAttribute("ultimo_mensaje",
                    mensajes.get(mensajes.size() - 1).getId_mensaje());
        }

        request.setAttribute("mensajes", mensajes);

        return mapping.getForwardByName("success");

    } catch (IOException | URISyntaxException | RuntimeException e) {
        request.setAttribute("message", "Error al intentar mostrar mensajes: " + e.getMessage());
        response.setStatus(400);
        return mapping.getForwardByName("error");
    }
}

From source file:com.terracotta.nrplugin.rest.nr.MetricReporter.java

private void doReportMetrics() {
    if (StateManager.TmcState.available.equals(stateManager.getTmcState())) {
        try {/*from   www .jav a  2 s . c om*/
            NewRelicPayload newRelicPayload = metricProvider.assemblePayload();
            log.info("Attempting to report stats to NewRelic...");
            if (nrRequestLog.isDebugEnabled()) {
                try {
                    nrRequestLog.debug(new ObjectMapper().writeValueAsString(newRelicPayload));
                } catch (JsonProcessingException e) {
                    log.error("Error serializing payload.", e);
                }
            }

            String json = mapper.writeValueAsString(newRelicPayload);
            HttpHost target = new HttpHost(nrHost, nrPort, nrScheme);
            HttpPost httpPost = new HttpPost(nrPath);
            httpPost.setEntity(new StringEntity(json));
            httpPost.setHeader(X_LICENSE_KEY, licenseKey);
            httpPost.setHeader(org.apache.http.HttpHeaders.CONTENT_TYPE,
                    ContentType.APPLICATION_JSON.getMimeType());
            httpPost.setHeader(org.apache.http.HttpHeaders.ACCEPT, ContentType.APPLICATION_JSON.getMimeType());
            CloseableHttpResponse response = httpClient.execute(target, httpPost);
            log.info("New Relic Response code: " + response.getStatusLine().getStatusCode());
            if (log.isDebugEnabled()) {
                log.debug("Received response: " + EntityUtils.toString(response.getEntity()));
            }
            EntityUtils.consumeQuietly(response.getEntity());
            log.info("Done reporting to NewRelic.");

            metricProvider.clearAllMetricData();
        } catch (Exception e) {
            log.error("Error while attempting to publish stats to NewRelic.", e);
        }
    } else {
        log.info("TMC State is '" + stateManager.getTmcState() + "', so disabling NR publication.");
    }
}

From source file:org.opendaylight.infrautils.diagstatus.shell.HttpClient.java

public HttpResponse sendRequest(HttpRequest request) throws Exception {
    CloseableHttpClient httpclient = HttpClients.createDefault();
    if (httpclient == null) {
        throw new ClientProtocolException("Couldn't create an HTTP client");
    }//from w  ww.jav a  2 s  .  c om
    RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(request.getTimeout())
            .setConnectTimeout(request.getTimeout()).build();
    HttpRequestBase httprequest;
    String method = request.getMethod();
    if (method.equalsIgnoreCase("GET")) {
        httprequest = new HttpGet(request.getUri());
    } else if (method.equalsIgnoreCase("POST")) {
        httprequest = new HttpPost(request.getUri());
        if (request.getEntity() != null) {
            StringEntity sentEntity = new StringEntity(request.getEntity());
            sentEntity.setContentType(request.getContentType());
            ((HttpEntityEnclosingRequestBase) httprequest).setEntity(sentEntity);
        }
    } else if (method.equalsIgnoreCase("PUT")) {
        httprequest = new HttpPut(request.getUri());
        if (request.getEntity() != null) {
            StringEntity sentEntity = new StringEntity(request.getEntity());
            sentEntity.setContentType(request.getContentType());
            ((HttpEntityEnclosingRequestBase) httprequest).setEntity(sentEntity);
        }
    } else if (method.equalsIgnoreCase("DELETE")) {
        httprequest = new HttpDelete(request.getUri());
    } else {
        httpclient.close();
        throw new IllegalArgumentException(
                "This profile class only supports GET, POST, PUT, and DELETE methods");
    }
    httprequest.setConfig(requestConfig);
    // add request headers
    Iterator<String> headerIterator = request.getHeaders().keySet().iterator();
    while (headerIterator.hasNext()) {
        String header = headerIterator.next();
        Iterator<String> valueIterator = request.getHeaders().get(header).iterator();
        while (valueIterator.hasNext()) {
            httprequest.addHeader(header, valueIterator.next());
        }
    }
    CloseableHttpResponse response = httpclient.execute(httprequest);
    try {
        int httpResponseCode = response.getStatusLine().getStatusCode();
        HashMap<String, List<String>> headerMap = new HashMap<>();
        // copy response headers
        HeaderIterator it = response.headerIterator();
        while (it.hasNext()) {
            Header nextHeader = it.nextHeader();
            String name = nextHeader.getName();
            String value = nextHeader.getValue();
            if (headerMap.containsKey(name)) {
                headerMap.get(name).add(value);
            } else {
                List<String> list = new ArrayList<>();
                list.add(value);
                headerMap.put(name, list);
            }
        }
        if (httpResponseCode > 299) {
            return new HttpResponse(httpResponseCode, response.getStatusLine().getReasonPhrase(), headerMap);
        }
        Optional<HttpEntity> receivedEntity = Optional.ofNullable(response.getEntity());
        String httpBody = receivedEntity.isPresent() ? EntityUtils.toString(receivedEntity.get()) : null;
        return new HttpResponse(response.getStatusLine().getStatusCode(), httpBody, headerMap);
    } finally {
        response.close();
    }
}

From source file:org.gradle.cache.tasks.http.HttpTaskOutputCache.java

@Override
public boolean load(TaskCacheKey key, TaskOutputReader reader) throws IOException {
    CloseableHttpClient httpClient = HttpClients.createDefault();
    try {/*  ww w . j  av  a 2s  .  com*/
        final URI uri = root.resolve("./" + key.getHashCode());
        HttpGet httpGet = new HttpGet(uri);
        final CloseableHttpResponse response = httpClient.execute(httpGet);
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Response for GET {}: {}", uri, response.getStatusLine());
        }
        try {
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode >= 200 && statusCode < 300) {
                reader.readFrom(response.getEntity().getContent());
                return true;
            } else {
                return false;
            }
        } finally {
            response.close();
        }
    } finally {
        httpClient.close();
    }
}

From source file:cn.vlabs.duckling.vwb.service.ddl.RestClient.java

private boolean isValidStatus(CloseableHttpResponse response) {
    int statusCode = response.getStatusLine().getStatusCode();
    return statusCode == 200 || statusCode == 201 || statusCode == 204;
}

From source file:com.ibm.team.build.internal.hjplugin.util.HttpUtils.java

/**
 * Perform any authentication required (Form or Basic) if the previous request did not
 * succeed./*  www  .j a  v a2s  .c o  m*/
 * @param response The response from the previous request. It will be consumed if
 * we are going to do authentication (i.e. not returned by this call).
 * @param httpClient The httpClient to use for authentication
 * @param httpContext The current context for use in request. Required.
 * It may be updated with authentication info if necessary.
 * @param serverURI The URI for the server
 * @param userId The user that is performing the request
 * @param password The user's password
 * @param timeout The timeout for the password
 * @param listener The listener should any messages need to be logged. May be
 * <code>null</code>
 * @return The response from the form based auth, or the original request if no auth is required
 * <code>null</code> if the request needs to be repeated (now that the context has been updated).
 * @throws InvalidCredentialsException Thrown if the user's userid or password are invalid.
 * @throws IOException Thrown if anything else goes wrong.
 * @throws GeneralSecurityException 
 */
private static CloseableHttpResponse authenticateIfRequired(CloseableHttpResponse response,
        CloseableHttpClient httpClient, HttpClientContext httpContext, String serverURI, String userId,
        String password, int timeout, TaskListener listener)
        throws InvalidCredentialsException, IOException, GeneralSecurityException {

    // decide what kind of Auth is required if any
    int statusCode = response.getStatusLine().getStatusCode();
    Header formHeader = response.getFirstHeader(FORM_AUTHREQUIRED_HEADER);
    Header basicHeader = response.getFirstHeader(BASIC_AUTHREQUIRED_HEADER);
    if (formHeader != null && FORM_AUTHREQUIRED_HEADER_VALUE.equals(formHeader.getValue())) {
        closeResponse(response);

        // login using Form based auth
        return handleFormBasedChallenge(httpClient, httpContext, serverURI, userId, password, timeout,
                listener);
    }
    if (statusCode == 401 && basicHeader != null) {
        if (JAUTH_PATTERN.matcher(basicHeader.getValue()).matches()) {
            throw new UnsupportedOperationException();

        } else if (BASIC_PATTERN.matcher(basicHeader.getValue()).matches()) {
            closeResponse(response);

            // setup the context to use Basic auth
            handleBasicAuthChallenge(httpContext, serverURI, userId, password, listener);
            return null;
        }
    }
    return response;
}

From source file:org.commonjava.indy.httprox.RetrievedContentMatchesContentLength_SlowClient_Test.java

@Test
public void run() throws Exception {
    final String testRepo = "test";
    String path = "path/to/binary.bin";
    StringBuilder content = new StringBuilder();
    for (int i = 0; i < CONTENT_LENGTH; i++) {
        content.append((char) rand.nextInt(SELECTION_RANGE_SIZE) + SELECTION_OFFSET);
    }/*from w  ww.j a v  a2s. c  o m*/

    final String url = server.formatUrl(testRepo, path);
    server.expect(url, 200, content.toString());

    final HttpGet get = new HttpGet(url);
    final CloseableHttpClient client = proxiedHttp();
    CloseableHttpResponse response = null;

    InputStream stream = null;
    try {
        response = client.execute(get, proxyContext(USER, PASS));
        assertThat(response.getStatusLine().getStatusCode(), equalTo(200));

        stream = response.getEntity().getContent();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        byte[] buf = new byte[1024];
        int read = -1;
        while ((read = stream.read(buf)) > -1) {
            baos.write(buf, 0, read);
        }

        final String resultingPom = new String(baos.toByteArray());

        assertThat(resultingPom, notNullValue());
        assertThat(resultingPom, equalTo(content.toString()));
    } finally {
        IOUtils.closeQuietly(stream);
        HttpResources.cleanupResources(get, response, client);
    }
}