Saltar al contenido

Cómo usar RestTemplate con el tipo de respuesta application/octet-stream

Sé libre de divulgar nuestra web y códigos en tus redes, danos de tu ayuda para hacer crecer nuestra comunidad.

Solución:

Debe configurar restTemplate con convertidores de mensajes. En tu configuración haz lo siguiente:

   @Bean
    public RestOperations restTemplate() 
        RestTemplate restTemplate = new RestTemplate();
        
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

        
        converter.setSupportedMediaTypes(
                Arrays.asList(new MediaType[]MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM));

        restTemplate.setMessageConverters(Arrays.asList(converter, new FormHttpMessageConverter()));
        return restTemplate;
    

Supongo que la mejor solución es simplemente agregar otro convertidor, no modificar los actuales:

@Bean
public RestTemplate restTemplate() 
    final RestTemplate restTemplate = new RestTemplate();
    restTemplate.getMessageConverters().add(jacksonSupportsMoreTypes());
    return restTemplate;



private HttpMessageConverter jacksonSupportsMoreTypes() //eg. Gitlab returns JSON as plain text 
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
    converter.setSupportedMediaTypes(Arrays.asList(MediaType.parseMediaType("text/plain;charset=utf-8"), MediaType.APPLICATION_OCTET_STREAM));
    return converter;

Aquí tienes las reseñas y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *