List of usage examples for org.springframework.http.client ClientHttpResponse getHeaders
HttpHeaders getHeaders();
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); }