Example usage for org.springframework.http.client ClientHttpResponse getRawStatusCode

List of usage examples for org.springframework.http.client ClientHttpResponse getRawStatusCode

Introduction

In this page you can find the example usage for org.springframework.http.client ClientHttpResponse getRawStatusCode.

Prototype

int getRawStatusCode() throws IOException;

Source Link

Document

Return the HTTP status code (potentially non-standard and not resolvable through the HttpStatus enum) as an integer.

Usage

From source file:org.fao.geonet.api.users.recaptcha.RecaptchaChecker.java

/**
 * Verifies the recaptcha response.//  ww w  .ja v  a  2s . c o m
 *
 * @param recaptchaResponse Recaptcha response.
 * @param secret Secret key for Google Recaptcha.
 * @return
 * @throws IOException
 */
public static boolean verify(final String recaptchaResponse, final String secret) throws IOException {
    if (StringUtils.isEmpty(recaptchaResponse)) {
        return false;
    }

    final GeonetHttpRequestFactory requestFactory = ApplicationContextHolder.get()
            .getBean(GeonetHttpRequestFactory.class);

    ClientHttpResponse httpResponse = null;
    try {
        HttpUriRequest httpPost = RequestBuilder.post().setUri(RECAPTCHA_URL)
                .setHeader("User-Agent", USER_AGENT).setHeader("Accept-Language", "en-US,en;q=0.5")
                .addParameter("secret", secret).addParameter("response", recaptchaResponse).build();

        httpResponse = requestFactory.execute(httpPost);

        if (httpResponse.getRawStatusCode() == 200) {
            String responseText = IOUtils.toString(httpResponse.getBody());

            //parse JSON response and return 'success' value
            JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(responseText);

            return jsonObject.getBoolean("success");
        } else {
            return false;
        }
    } catch (Throwable e) {
        return false;
    } finally {
        IOUtils.closeQuietly(httpResponse);
    }
}

From source file:com.ge.predix.uaa.token.lib.FastTokenServicesResponseErrorHandler.java

@Override
public void handleError(final ClientHttpResponse response) throws IOException {
    if (response.getRawStatusCode() != 400) {
        super.handleError(response);
    }/* w  w w  .  jav a2s  . c o  m*/
}

From source file:org.zalando.riptide.StatusCodeSelector.java

@Override
public Optional<Integer> attributeOf(final ClientHttpResponse response) throws IOException {
    return Optional.of(response.getRawStatusCode());
}

From source file:com.cisco.cta.taxii.adapter.ResponseTransformer.java

/**
 * Transforms TAXII response./*w  w w .java2 s.c  o m*/
 * 
 * @param resp HTTP response
 * @return TaxiiPollResponse if valid TAXII poll response was returned
 * @throws Exception When any error occurs.
 */
public TaxiiPollResponse transform(ClientHttpResponse resp) throws Exception {
    if (resp.getRawStatusCode() == HTTP_OK) {
        try (InputStream body = resp.getBody()) {
            TaxiiPollResponseReader responseReader = readerFactory.create(body);
            Transformer transformer = templates.newTransformer();
            transformer.transform(new StAXSource(responseReader), new StreamResult(logWriter));
            return responseReader.getResponse();
        }
    } else {
        throw new IOException("HTTP response status " + resp.getRawStatusCode() + ":" + resp.getStatusText());
    }
}

From source file:com.golonzovsky.oauth2.google.security.GoogleTokenServices.java

public GoogleTokenServices() {
    restTemplate = new RestTemplate();
    ((RestTemplate) restTemplate).setErrorHandler(new DefaultResponseErrorHandler() {
        @Override/*from w  w  w.  j  a  va 2s  .co  m*/
        // Ignore 400
        public void handleError(ClientHttpResponse response) throws IOException {
            if (response.getRawStatusCode() != 400) {
                super.handleError(response);
            }
        }
    });
}

From source file:com.ggk.hrms.authentication.CustomTokenServices.java

public CustomTokenServices() {
    restTemplate = new RestTemplate();
    ((RestTemplate) restTemplate).setErrorHandler(new DefaultResponseErrorHandler() {
        @Override// w w w  . j a  v a2s .  c  o m
        // Ignore 400
        public void handleError(ClientHttpResponse response) throws IOException {
            if (response.getRawStatusCode() != 400) {
                super.handleError(response);
            }
        }
    });
}

From source file:org.fao.geonet.utils.XmlRequest.java

protected final Element executeAndReadResponse(HttpRequestBase httpMethod)
        throws IOException, BadXmlResponseEx {

    final ClientHttpResponse httpResponse = doExecute(httpMethod);

    if (httpResponse.getRawStatusCode() > 399) {
        httpMethod.releaseConnection();/*  w ww.  j  a  v  a 2 s  .c o  m*/
        throw new BadServerResponseEx(httpResponse.getStatusText() + " -- URI: " + httpMethod.getURI()
                + " -- Response Code: " + httpResponse.getRawStatusCode());
    }

    byte[] data = null;

    try {
        data = IOUtils.toByteArray(httpResponse.getBody());
        return Xml.loadStream(new ByteArrayInputStream(data));
    } catch (JDOMException e) {
        throw new BadXmlResponseEx(
                "Response: '" + new String(data, "UTF8") + "' (from URI " + httpMethod.getURI() + ")");
    } finally {
        httpMethod.releaseConnection();

        sentData = getSentData(httpMethod);
    }
}

From source file:org.zalando.riptide.ActionsTest.java

private void fail(final ClientHttpResponse response) throws IOException {
    throw new AssertionError(response.getRawStatusCode());
}

From source file:com.cisco.cta.taxii.adapter.smoketest.SmokeTestLifecycle.java

void validateTaxiiConnectivity() {
    URL endpoint = settingsConfig.taxiiServiceSettings().getPollEndpoint();
    log.info("Contacting TAXII poll service {} ...", endpoint);
    try {/*from  w w  w . j  a  v a2 s .c  om*/
        Feed feed = new TaxiiStatus.Feed();
        feed.setName(settingsConfig.taxiiServiceSettings().getFeeds().iterator().next());
        ClientHttpResponse resp = requestFactory.createPollRequest("smoke-test", feed).execute();

        switch (resp.getRawStatusCode()) {
        case 200:
            log.info("Succesfully connected to {}", endpoint);
            return;
        case 401:
        case 403:
            log.error("Authentication or authorization problem, verify your credentials in application.yml");
            return;
        default:
            log.error("{} returned {} HTTP status code, check your configuration", endpoint,
                    resp.getRawStatusCode());
        }

    } catch (UnknownHostException e) {
        log.error("Unable to resolve host name {}, verify your application.yml and your DNS settings",
                e.getMessage());
    } catch (Exception e) {
        log.error("Error connecting to " + endpoint, e);
    }
}

From source file:com.insys.cfclient.nozzle.InfluxDBSender.java

@Async
public void sendBatch(List<String> messages) {
    log.debug("ENTER sendBatch");
    httpClient.setErrorHandler(new ResponseErrorHandler() {
        @Override//from www. j a v  a  2 s. c o m
        public boolean hasError(ClientHttpResponse clientHttpResponse) throws IOException {
            return clientHttpResponse.getRawStatusCode() > 399;
        }

        @Override
        public void handleError(ClientHttpResponse clientHttpResponse) throws IOException {

        }
    });

    RetryTemplate retryable = new RetryTemplate();
    retryable.setBackOffPolicy(getBackOffPolicy());
    retryable.setRetryPolicy(new SimpleRetryPolicy(properties.getMaxRetries(),
            Collections.singletonMap(ResourceAccessException.class, true)));

    final AtomicInteger counter = new AtomicInteger(0);
    retryable.execute(retryContext -> {
        int count = counter.incrementAndGet();
        log.trace("Attempt {} to deliver this batch", count);
        final StringBuilder builder = new StringBuilder();
        messages.forEach(s -> builder.append(s).append("\n"));

        String body = builder.toString();

        RequestEntity<String> entity = new RequestEntity<>(body, HttpMethod.POST, getUri());

        ResponseEntity<String> response;

        response = httpClient.exchange(entity, String.class);

        if (response.getStatusCode() != HttpStatus.NO_CONTENT) {
            log.error("Failed to write logs to InfluxDB! Expected error code 204, got {}",
                    response.getStatusCodeValue());

            log.trace("Request Body: {}", body);
            log.trace("Response Body: {}", response.getBody());

        } else {
            log.debug("batch sent successfully!");
        }

        log.debug("EXIT sendBatch");

        return null;
    }, recoveryContext -> {
        log.trace("Failed after {} attempts!", counter.get());
        return null;
    });
}