Example usage for org.springframework.web.client RestTemplate getMessageConverters

List of usage examples for org.springframework.web.client RestTemplate getMessageConverters

Introduction

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

Prototype

public List<HttpMessageConverter<?>> getMessageConverters() 

Source Link

Document

Return the list of message body converters.

Usage

From source file:org.springframework.boot.web.client.RestTemplateBuilderTests.java

@Test
public void messageConvertersShouldApply() throws Exception {
    RestTemplate template = this.builder.messageConverters(this.messageConverter).build();
    assertThat(template.getMessageConverters()).containsOnly(this.messageConverter);
}

From source file:es.onebox.rest.utils.service.QueryService.java

/**
 * Main method to perform request to Onebox REST API.
 *
 * @param authenticationForm/*from w  ww .  ja  v a 2  s .c  o  m*/
 * @param queryForm
 * @return Response form request
 */
public ResponseDTO query(AuthenticationForm authenticationForm, QueryForm queryForm) {

    ResponseDTO responseDTO = new ResponseDTO();
    Exception ex = null;

    try {

        URL url = new URL(queryForm.getUrl());
        URI uri = url.toURI();

        Date date = new Date();
        long timestamp = date.getTime();

        HttpMethod httpMethod;

        if (queryForm.getMethod().equalsIgnoreCase("post")) {
            httpMethod = HttpMethod.POST;
        } else {
            httpMethod = HttpMethod.GET;
        }

        // Getting String to encode with HMAC-SHA1
        // First step in the signing algorithm
        String stringToSign = getStringToSign(uri, httpMethod.name(), timestamp, queryForm);

        logger.info("String to sign: " + stringToSign);

        // Encoding String
        // This is the actual authorization string that will be sent in the request
        String authorization = generate_HMAC_SHA1_Signature(stringToSign,
                authenticationForm.getPassword() + authenticationForm.getLicense());

        logger.info("Authorization string: " + authorization);

        // Adding to return object
        responseDTO.setDate(date);
        responseDTO.setStringToSign(stringToSign);
        responseDTO.setAuthorization(authorization);

        // Setting Headers
        HttpHeaders headers = new HttpHeaders();

        if (queryForm.getAccept().equals("json")) {
            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        } else {
            headers.setAccept(Arrays.asList(MediaType.TEXT_XML));
        }

        headers.add("Authorization", authorization);
        headers.add("OB_DATE", "" + timestamp);
        headers.add("OB_Terminal", authenticationForm.getTerminal());
        headers.add("OB_User", authenticationForm.getUser());
        headers.add("OB_Channel", authenticationForm.getChannelId());
        headers.add("OB_POS", authenticationForm.getPos());

        // Adding Headers to return object
        responseDTO.setHttpHeaders(headers);

        HttpEntity<String> entity;

        if (httpMethod == HttpMethod.POST) {
            // Adding post parameters to POST body
            String parameterStringBody = queryForm.getParametersAsString();
            entity = new HttpEntity<String>(parameterStringBody, headers);
            logger.info("POST Body: " + parameterStringBody);
        } else {
            entity = new HttpEntity<String>(headers);
        }

        // Creating rest client
        RestTemplate restTemplate = new RestTemplate();

        // Converting to UTF-8. OB Rest replies in windows charset.
        restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));

        // Performing request to Onebox REST API
        ResponseEntity<String> result = restTemplate.exchange(uri, httpMethod, entity, String.class);

        // TODO this functionlity is to map response to objetcs. It is not finished. Only placed here for POC
        /*
        if (queryForm.getMapResponse().booleanValue()) {
        ResponseEntity<EventSearchBean> event = restTemplate.exchange(uri, httpMethod, entity, EventSearchBean.class);
        }
        */

        // Adding response to return object
        responseDTO.setResponseEntity(result);

        logger.debug(result.toString());

    } catch (HttpClientErrorException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (MalformedURLException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (SignatureException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (URISyntaxException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (Exception e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.authentication"));
    } finally {
        if (ex != null && ex instanceof HttpServerErrorException) {
            HttpServerErrorException e2 = (HttpServerErrorException) ex;
            ResponseEntity<String> responseEntity = new ResponseEntity<String>(e2.getResponseHeaders(),
                    HttpStatus.INTERNAL_SERVER_ERROR);

            List<String> ob_error_codes = e2.getResponseHeaders().get("OB_Error_Code");

            String ob_error_code;
            ResponseErrorCodesEnum ob_error = null;

            if (ob_error_codes != null && ob_error_codes.size() == 1) {
                ob_error_code = ob_error_codes.get(0);
                try {
                    ob_error = ResponseErrorCodesEnum.valueOf("ERROR_" + ob_error_code);
                } catch (Exception e) {
                    logger.error("API ERROR CODE NOT DEFINED: " + "ERROR_" + ob_error_code);
                }
                responseDTO.setObResponseErrorCode(ob_error);
            }

            responseDTO.setResponseEntity(responseEntity);
        }
    }

    return responseDTO;
}

From source file:org.springframework.cloud.netflix.eureka.http.RestTemplateTransportClientFactory.java

private RestTemplate restTemplate(String serviceUrl) {
    RestTemplate restTemplate = new RestTemplate();
    try {/*from   ww w .ja  v a  2 s  .  com*/
        URI serviceURI = new URI(serviceUrl);
        if (serviceURI.getUserInfo() != null) {
            String[] credentials = serviceURI.getUserInfo().split(":");
            if (credentials.length == 2) {
                restTemplate.getInterceptors()
                        .add(new BasicAuthorizationInterceptor(credentials[0], credentials[1]));
            }
        }
    } catch (URISyntaxException ignore) {

    }

    restTemplate.getMessageConverters().add(0, mappingJacksonHttpMessageConverter());

    return restTemplate;
}

From source file:org.springframework.boot.web.client.RestTemplateBuilderTests.java

@Test
public void additionalMessageConvertersShouldAddToExisting() throws Exception {
    HttpMessageConverter<?> resourceConverter = new ResourceHttpMessageConverter();
    RestTemplate template = this.builder.messageConverters(resourceConverter)
            .additionalMessageConverters(this.messageConverter).build();
    assertThat(template.getMessageConverters()).containsOnly(resourceConverter, this.messageConverter);
}

From source file:com.binomed.devfest.service.DevFestSpiceService.java

@Override
public RestTemplate createRestTemplate() {
    RestTemplate restTemplate = new RestTemplate();
    // find more complete examples in RoboSpice Motivation app
    // to enable Gzip compression and setting request timeouts.

    // web services support json responses
    MappingJacksonHttpMessageConverter jsonConverter = new MappingJacksonHttpMessageConverter();
    FormHttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter();
    StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter();
    final List<HttpMessageConverter<?>> listHttpMessageConverters = restTemplate.getMessageConverters();

    listHttpMessageConverters.add(jsonConverter);
    listHttpMessageConverters.add(formHttpMessageConverter);
    listHttpMessageConverters.add(stringHttpMessageConverter);
    restTemplate.setMessageConverters(listHttpMessageConverters);
    return restTemplate;
}

From source file:org.springframework.boot.web.client.RestTemplateBuilderTests.java

@Test
public void messageConvertersShouldReplaceExisting() throws Exception {
    RestTemplate template = this.builder.messageConverters(new ResourceHttpMessageConverter())
            .messageConverters(Collections.singleton(this.messageConverter)).build();
    assertThat(template.getMessageConverters()).containsOnly(this.messageConverter);
}

From source file:com.muk.services.configuration.ServiceConfig.java

@Bean
public RestTemplate genericRestTemplate() {
    final RestTemplate restTemplate = new RestTemplate(genericHttpRequestFactory());
    final List<HttpMessageConverter<?>> converters = restTemplate.getMessageConverters();

    for (final HttpMessageConverter<?> converter : converters) {
        if (converter instanceof MappingJackson2HttpMessageConverter) {
            final MappingJackson2HttpMessageConverter jsonConverter = (MappingJackson2HttpMessageConverter) converter;
            jsonConverter.setObjectMapper(jsonObjectMapper());

            final List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();
            supportedMediaTypes/* w ww  .  j av a 2  s .  c  om*/
                    .add(new MediaType("text", "json", AbstractJackson2HttpMessageConverter.DEFAULT_CHARSET));

            for (final MediaType mediaType : jsonConverter.getSupportedMediaTypes()) {
                supportedMediaTypes.add(mediaType);
            }

            jsonConverter.setSupportedMediaTypes(supportedMediaTypes);
        }
    }
    return restTemplate;
}

From source file:com.muk.services.configuration.ServiceConfig.java

@Bean
public RestTemplate nonPerformantRestTemplate() {
    final RestTemplate restTemplate = new RestTemplate(nonPerformantHttpRequestFactory());
    final List<HttpMessageConverter<?>> converters = restTemplate.getMessageConverters();

    for (final HttpMessageConverter<?> converter : converters) {
        if (converter instanceof MappingJackson2HttpMessageConverter) {
            final MappingJackson2HttpMessageConverter jsonConverter = (MappingJackson2HttpMessageConverter) converter;
            jsonConverter.setObjectMapper(jsonObjectMapper());

            final List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();
            supportedMediaTypes//  w w w  .  j  a v  a  2 s.co m
                    .add(new MediaType("text", "json", AbstractJackson2HttpMessageConverter.DEFAULT_CHARSET));

            for (final MediaType mediaType : jsonConverter.getSupportedMediaTypes()) {
                supportedMediaTypes.add(mediaType);
            }

            jsonConverter.setSupportedMediaTypes(supportedMediaTypes);
        }
    }
    return restTemplate;
}