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

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

Introduction

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

Prototype

HttpHeaders getHeaders();

Source Link

Document

Return the headers of this message.

Usage

From source file:sparklr.common.AbstractAuthorizationCodeProviderTests.java

@BeforeOAuth2Context
public void setupAccessTokenProvider() {
    accessTokenProvider = new AuthorizationCodeAccessTokenProvider() {

        private ResponseExtractor<OAuth2AccessToken> extractor = super.getResponseExtractor();

        private ResponseExtractor<ResponseEntity<Void>> authExtractor = super.getAuthorizationResponseExtractor();

        private ResponseErrorHandler errorHandler = super.getResponseErrorHandler();

        @Override/*from ww w .j  av  a  2  s .  c o m*/
        protected ResponseErrorHandler getResponseErrorHandler() {
            return new DefaultResponseErrorHandler() {
                public void handleError(ClientHttpResponse response) throws IOException {
                    response.getHeaders();
                    response.getStatusCode();
                    tokenEndpointResponse = response;
                    errorHandler.handleError(response);
                }
            };
        }

        @Override
        protected ResponseExtractor<OAuth2AccessToken> getResponseExtractor() {
            return new ResponseExtractor<OAuth2AccessToken>() {

                public OAuth2AccessToken extractData(ClientHttpResponse response) throws IOException {
                    try {
                        response.getHeaders();
                        response.getStatusCode();
                        tokenEndpointResponse = response;
                        return extractor.extractData(response);
                    } catch (ResourceAccessException e) {
                        return null;
                    }
                }

            };
        }

        @Override
        protected ResponseExtractor<ResponseEntity<Void>> getAuthorizationResponseExtractor() {
            return new ResponseExtractor<ResponseEntity<Void>>() {

                public ResponseEntity<Void> extractData(ClientHttpResponse response) throws IOException {
                    response.getHeaders();
                    response.getStatusCode();
                    tokenEndpointResponse = response;
                    return authExtractor.extractData(response);
                }
            };
        }
    };
    context.setAccessTokenProvider(accessTokenProvider);
}

From source file:com.appglu.impl.StorageTemplate.java

protected boolean streamStorageFile(StorageFile file, final InputStreamCallback inputStreamCallback,
        RequestCallback requestCallback) throws AppGluRestClientException {
    URI uri = this.getStorageFileURI(file);

    try {//from w ww  .j a  v a  2  s  .  c om
        ResponseExtractor<Boolean> responseExtractor = new ResponseExtractor<Boolean>() {
            public Boolean extractData(ClientHttpResponse response) throws IOException {
                if (response.getStatusCode() == HttpStatus.NOT_MODIFIED) {
                    return false;
                }

                Md5DigestCalculatingInputStream inputStream = new Md5DigestCalculatingInputStream(
                        response.getBody());
                inputStreamCallback.doWithInputStream(inputStream);

                String eTagHeader = response.getHeaders().getETag();

                if (StringUtils.isNotEmpty(eTagHeader)) {
                    String eTag = StringUtils.removeDoubleQuotes(eTagHeader);

                    byte[] contentMd5 = inputStream.getMd5Digest();
                    if (!HashUtils.md5MatchesWithETag(contentMd5, eTag)) {
                        throw new AppGluRestClientException("Unable to verify integrity of downloaded file. "
                                + "Client calculated content hash didn't match hash calculated by server");
                    }
                }

                return true;
            }
        };

        return this.downloadRestOperations.execute(uri, HttpMethod.GET, requestCallback, responseExtractor);
    } catch (RestClientException e) {
        throw new AppGluRestClientException(e.getMessage(), e);
    }
}

From source file:com.sastix.cms.common.client.exception.CommonExceptionHandler.java

/**
 * This default implementation throws a {@link HttpClientErrorException} if the response status code
 * is {@link HttpStatus.Series#CLIENT_ERROR}, a {@link HttpServerErrorException}
 * if it is {@link HttpStatus.Series#SERVER_ERROR},
 * and a {@link RestClientException} in other cases.
 *///from  w ww .ja v a2s .  c o  m
@Override
public void handleError(ClientHttpResponse response) throws IOException, RestClientException {
    HttpStatus statusCode = getHttpStatusCode(response);
    switch (statusCode.series()) {
    case CLIENT_ERROR:
        final byte[] responseBody = getResponseBody(response);
        final Charset charset = getCharset(response);
        final String statusText = response.getStatusText();
        final HttpHeaders httpHeaders = response.getHeaders();
        final RestErrorDTO errorDTO;

        try {
            errorDTO = objectMapper.readValue(new String(responseBody, charset), RestErrorDTO.class);
            LOG.error("Exception: " + errorDTO.toString());
        } catch (final Exception e) {
            //Wasn't able to map String on ErrorDTO.
            //It is an Unknown Exception
            //Throw Default Exception
            final HttpClientErrorException clientErrorException = new HttpClientErrorException(statusCode,
                    statusText, httpHeaders, responseBody, charset);
            LOG.error("Unknown Exception: " + clientErrorException.getMessage());
            throw clientErrorException;
        }

        if (exceptionClasses.containsKey(errorDTO.getException())) {
            throw (exceptionClasses.get(errorDTO.getException())).create(errorDTO.getMessage());
        } else {
            throw new HttpClientErrorException(statusCode, statusText, httpHeaders, responseBody, charset);
        }

    case SERVER_ERROR:
        throw new HttpServerErrorException(statusCode, response.getStatusText(), response.getHeaders(),
                getResponseBody(response), getCharset(response));
    default:
        throw new RestClientException("Unknown status code [" + statusCode + "]");
    }
}

From source file:com.neiljbrown.brighttalk.channels.reportingapi.client.spring.ApiResponseErrorHandlerTest.java

/**
 * Creates a mock implementation of {@link ClientHttpResponse} and configures it to return supplied data.
 * <p>/*ww w  . ja va  2s. c o m*/
 * ClientHttpResponse needs mocking for test fixtures which rely on setting response headers as for some reason Spring
 * 4.0's MockClientHttpResponse doesn't support setting response headers.
 * 
 * @param httpStatus The {@link HttpStatus} which the mock should be configured to return for invocations of
 * {@link ClientHttpResponse#getStatusCode()}.
 * @param headers The {@link HttpHeaders} which the mock should be configured to return for invocations of
 * {@link ClientHttpResponse#getHeaders()}.
 * @param body A string representation of the data which the mock should be configured to return for invocations of
 * {@link ClientHttpResponse#getBody()}.
 * @return The created {@link ClientHttpResponse}.
 */
private ClientHttpResponse createMockClientHttpResponse(HttpStatus httpStatus, HttpHeaders headers,
        final String body) {
    ClientHttpResponse mockClientHttpResponse = EasyMock.createNiceMock(ClientHttpResponse.class);
    try {
        EasyMock.expect(mockClientHttpResponse.getStatusCode()).andReturn(httpStatus).anyTimes();
        EasyMock.expect(mockClientHttpResponse.getRawStatusCode()).andReturn(httpStatus.value()).anyTimes();
        EasyMock.expect(mockClientHttpResponse.getHeaders()).andReturn(headers).anyTimes();
        // Return a new InputStream for each call to ClientHttpResponse.getBody() rather than an exhausted one  
        IAnswer<InputStream> iAnswer = new IAnswer<InputStream>() {
            public InputStream answer() {
                return body != null ? new ByteArrayInputStream(body.getBytes()) : null;
            }
        };
        EasyMock.expect(mockClientHttpResponse.getBody()).andAnswer(iAnswer).anyTimes();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
    return mockClientHttpResponse;
}

From source file:sparklr.common.AbstractAuthorizationCodeProviderTests.java

private void verifyAuthorizationPage(OAuth2RestTemplate restTemplate, String location) {
    final AtomicReference<String> confirmationPage = new AtomicReference<String>();
    AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider() {
        @Override/*from w  w  w.j a  v  a 2 s.c  o m*/
        protected ResponseExtractor<ResponseEntity<Void>> getAuthorizationResponseExtractor() {
            return new ResponseExtractor<ResponseEntity<Void>>() {
                public ResponseEntity<Void> extractData(ClientHttpResponse response) throws IOException {
                    confirmationPage
                            .set(StreamUtils.copyToString(response.getBody(), Charset.forName("UTF-8")));
                    return new ResponseEntity<Void>(response.getHeaders(), response.getStatusCode());
                }
            };
        }
    };
    try {
        provider.obtainAuthorizationCode(restTemplate.getResource(),
                restTemplate.getOAuth2ClientContext().getAccessTokenRequest());
    } catch (UserApprovalRequiredException e) {
        // ignore
    }
    String page = confirmationPage.get();
    verifyAuthorizationPage(page);
}

From source file:org.intermine.app.net.ServerErrorHandler.java

@Override
public void handleError(ClientHttpResponse response) throws IOException {
    InputStream inputStream = response.getBody();
    String body = Strs.nullToEmpty(IOUtils.toString(inputStream, DEFAULT_ENCODING));
    String errorMessage = null;/*from  w  ww  . j  a v a 2 s. com*/

    try {
        Map<String, String> map = mMapper.fromJson(body, Map.class);

        if (null != map) {
            errorMessage = map.get(ERROR_KEY);
        }
    } catch (JsonSyntaxException ex) {
    }

    HttpNetworkException e = new HttpNetworkException(response.getStatusText());
    e.setErrorMessage(Strs.isNullOrEmpty(errorMessage) ? body : errorMessage);
    e.setHeaders(response.getHeaders());
    e.setStatusCode(response.getStatusCode());
    throw e;
}

From source file:com.netflix.genie.web.controllers.JobRestController.java

private void copyResponseHeaders(final HttpServletResponse response, final ClientHttpResponse forwardResponse) {
    final HttpHeaders headers = forwardResponse.getHeaders();
    for (final Map.Entry<String, String> header : headers.toSingleValueMap().entrySet()) {
        //// w w  w.ja v  a  2  s  .c o  m
        // Do not add transfer encoding header since it forces Apache to truncate the response. Ideally we should
        // only copy headers that are needed.
        //
        if (!TRANSFER_ENCODING_HEADER.equalsIgnoreCase(header.getKey())) {
            response.setHeader(header.getKey(), header.getValue());
        }
    }
}

From source file:org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfigurationTests.java

public boolean hasHeader(String url, int port, String header) throws Exception {
    SimpleClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory();
    ClientHttpRequest request = clientHttpRequestFactory
            .createRequest(new URI("http://localhost:" + port + url), HttpMethod.GET);
    ClientHttpResponse response = request.execute();
    return response.getHeaders().containsKey(header);
}

From source file:com.tyro.oss.pact.spring4.pact.consumer.ReturnExpect.java

private void getOrCreateWorkflowAndAddInteraction(Pact pact, ClientHttpRequest clientRequest,
        ClientHttpResponse response) throws IOException {
    String bodyString = StreamUtils.copyToString(response.getBody(), Charset.defaultCharset());
    response.getBody().reset();/* w  w w.  jav  a2  s .  com*/

    Pact.Interaction interaction = new Pact.Interaction(null,
            new Pact.InteractionRequest(restRequestDescriptor.getMethod(),
                    urlencode(restRequestDescriptor.getUrl()), clientRequest.getHeaders(),
                    extractBodyContent(restRequestDescriptor.getRequest())),
            new Pact.InteractionResponse(response.getRawStatusCode(), response.getHeaders(), bodyString,
                    schema),
            objectConverter);
    Pact.Workflow workflow = pact.getWorkflow(this.workflowId, this.providerStates);
    workflow.addInteraction(interaction);
}