Example usage for org.springframework.web.client HttpMessageConverterExtractor HttpMessageConverterExtractor

List of usage examples for org.springframework.web.client HttpMessageConverterExtractor HttpMessageConverterExtractor

Introduction

In this page you can find the example usage for org.springframework.web.client HttpMessageConverterExtractor HttpMessageConverterExtractor.

Prototype

public HttpMessageConverterExtractor(Type responseType, List<HttpMessageConverter<?>> messageConverters) 

Source Link

Document

Creates a new instance of the HttpMessageConverterExtractor with the given response type and message converters.

Usage

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

private I convert(final ClientHttpResponse response, final List<HttpMessageConverter<?>> converters)
        throws IOException {
    return new HttpMessageConverterExtractor<I>(type.getType(), converters).extractData(response);
}

From source file:org.craftercms.commons.rest.HttpMessageConvertingResponseErrorHandler.java

@Override
public void handleError(ClientHttpResponse response) throws IOException {
    HttpStatus status = response.getStatusCode();
    HttpMessageConverterExtractor<?> responseExtractor = new HttpMessageConverterExtractor<>(responseType,
            messageConverters);/* ww  w .j  av a  2  s.  com*/

    Object errorDetails;
    try {
        errorDetails = responseExtractor.extractData(response);
    } catch (RestClientException e) {
        // No message converter to extract the response, so make the error details
        // the response body as string
        throw new RestServiceException(status, getResponseBodyAsString(response));
    }

    throw new RestServiceException(status, errorDetails);
}

From source file:org.springframework.integration.samples.rest.RestHttpClientTest.java

@Before
public void setUp() {
    responseExtractor = new HttpMessageConverterExtractor<EmployeeList>(EmployeeList.class,
            restTemplate.getMessageConverters());

    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8");
    properties.put(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
    marshaller.setMarshallerProperties(properties);
}

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

private Account fromResponse(final ClientHttpResponse response) throws IOException {
    final AccountBody account = new HttpMessageConverterExtractor<>(AccountBody.class,
            template.getMessageConverters()).extractData(response);
    return new Account(account.getId(), "fake", account.getName());
}

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

/**
 * @param messageConverters The list of {@link HttpMessageConverter} that should be used to convert the body of an
 * error response returned by the API service. All of the supplied converters must be capable of reading an
 * {@link ApiError} in a media type of application/xml.
 *//*from   www .  ja  v a 2 s.  co  m*/
public ApiResponseErrorHandler(List<HttpMessageConverter<?>> messageConverters) {
    Preconditions.checkNotNull(messageConverters, "messageConverters must be non-null.");
    for (HttpMessageConverter<?> messageConverter : messageConverters) {
        if (!messageConverter.canRead(ApiError.class, MediaType.APPLICATION_XML)) {
            throw new IllegalArgumentException("HttpMessageConverter [" + messageConverter
                    + "] must support reading " + "an object of class [" + ApiError.class.toString() + "].");
        }
    }
    this.errorResponseExtractor = new HttpMessageConverterExtractor<ApiError>(ApiError.class,
            messageConverters);
}

From source file:org.eclipse.cft.server.core.internal.client.CloudFoundryClientFactory.java

private static String getJson(RestTemplate restTemplate, String urlString) {
    ClientHttpResponse response = null;// ww  w  .  ja  va  2  s .  c o m
    HttpMethod method = null;
    try {
        method = HttpMethod.GET;

        URI url = new UriTemplate(urlString).expand();
        ClientHttpRequest request = restTemplate.getRequestFactory().createRequest(url, method);

        List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
        acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
        request.getHeaders().setAccept(acceptableMediaTypes);
        //if (requestCallback != null) {
        //   requestCallback.doWithRequest(request);
        //}
        response = request.execute();
        if (response.getBody() != null) {
            HttpMessageConverterExtractor<String> extractor = new HttpMessageConverterExtractor<String>(
                    String.class, restTemplate.getMessageConverters());
            String data = extractor.extractData(response);
            return data;
        }
        ;
    } catch (IOException ex) {
        throw new ResourceAccessException(
                "I/O error on " + method.name() + " request for \"" + urlString + "\":" + ex.getMessage(), ex);
    } finally {
        if (response != null) {
            response.close();
        }
    }
    return null;
}

From source file:org.cloudfoundry.identity.client.UaaContextFactory.java

/**
 * Performs and authorization_code grant, but uses a token to assert the user's identity.
 * @param tokenRequest - a configured TokenRequest
 * @return an authenticated {@link UaaContext}
 *//*  www . ja v a2 s  .co  m*/
protected UaaContext authenticateAuthCodeWithToken(final TokenRequest tokenRequest) {
    List<OAuth2AccessTokenSupport> providers = Collections
            .singletonList(new AuthorizationCodeAccessTokenProvider() {
                @Override
                protected ResponseExtractor<OAuth2AccessToken> getResponseExtractor() {
                    getRestTemplate(); // force initialization
                    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
                    return new HttpMessageConverterExtractor<OAuth2AccessToken>(CompositeAccessToken.class,
                            Arrays.asList(converter));
                }
            });
    enhanceRequestParameters(tokenRequest, providers.get(0));
    AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails();
    details.setPreEstablishedRedirectUri(tokenRequest.getRedirectUri().toString());
    configureResourceDetails(tokenRequest, details);
    setClientCredentials(tokenRequest, details);
    setRequestScopes(tokenRequest, details);
    details.setUserAuthorizationUri(tokenRequest.getAuthorizationEndpoint().toString());
    DefaultOAuth2ClientContext oAuth2ClientContext = new DefaultOAuth2ClientContext();
    oAuth2ClientContext.getAccessTokenRequest().setStateKey(tokenRequest.getState());
    oAuth2ClientContext.setPreservedState(tokenRequest.getState(), details.getPreEstablishedRedirectUri());
    oAuth2ClientContext.getAccessTokenRequest().setCurrentUri(details.getPreEstablishedRedirectUri());
    Map<String, List<String>> headers = (Map<String, List<String>>) oAuth2ClientContext.getAccessTokenRequest()
            .getHeaders();
    headers.put("Authorization", Arrays.asList("bearer " + tokenRequest.getAuthCodeAPIToken()));
    OAuth2RestTemplate template = new OAuth2RestTemplate(details, oAuth2ClientContext);
    skipSslValidation(tokenRequest, template, providers);
    OAuth2AccessToken token = template.getAccessToken();
    return new UaaContextImpl(tokenRequest, template, (CompositeAccessToken) token);
}

From source file:org.springframework.web.client.RestTemplate.java

public <T> T getForObject(String url, Class<T> responseType, Object... urlVariables)
        throws RestClientException {
    AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
    HttpMessageConverterExtractor<T> responseExtractor = new HttpMessageConverterExtractor<T>(responseType,
            getMessageConverters());/* w  w  w .j a va2s .c om*/
    return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables);
}

From source file:org.springframework.web.client.RestTemplate.java

public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> urlVariables)
        throws RestClientException {
    AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
    HttpMessageConverterExtractor<T> responseExtractor = new HttpMessageConverterExtractor<T>(responseType,
            getMessageConverters());//from  w  w  w  .j  av  a  2s  .  c o  m
    return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables);
}

From source file:org.springframework.web.client.RestTemplate.java

public <T> T getForObject(URI url, Class<T> responseType) throws RestClientException {
    AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
    HttpMessageConverterExtractor<T> responseExtractor = new HttpMessageConverterExtractor<T>(responseType,
            getMessageConverters());//w  w w .  ja v  a2 s . c om
    return execute(url, HttpMethod.GET, requestCallback, responseExtractor);
}