4

I am testing download a file from localhost by restTemplate:

Here is my test:

@Test
public void download_test() throws Exception {     

 List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
    messageConverters.add(new ByteArrayHttpMessageConverter());

    RestTemplate restTemplate = new RestTemplate(messageConverters);

    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_OCTET_STREAM));
    HttpEntity<String> entity = new HttpEntity<String>(headers);

    String url = "http://localhost:8083/images/11.jpg";
    ResponseEntity<byte[]> response = restTemplate.exchange(url, HttpMethod.GET,
            entity, byte[].class);

    if (response.getStatusCode() == HttpStatus.OK) {
        Files.write(Paths.get("downloadedImage.jpg"), response.getBody());
    }
}

In my WebConfig i have been configured MssageConverters and ContentNegotiation as follows:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(new ByteArrayHttpMessageConverter());
    super.configureMessageConverters(converters);
}

@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    configurer.favorPathExtension(false).
            favorParameter(true).
            parameterName("mediaType").
            ignoreAcceptHeader(false).
            useJaf(false).
            defaultContentType(MediaType.APPLICATION_JSON).
            mediaType("xml", MediaType.APPLICATION_XML).
            mediaType("json", MediaType.APPLICATION_JSON).
            mediaType("octet-stream", MediaType.APPLICATION_OCTET_STREAM);
}
...}

Why i am getting 406 error?

Am i missing something?

org.springframework.web.client.HttpClientErrorException: 406 Not Acceptable

kitty 23
  • 43
  • 3

0 Answers0