Spring RestTemplate нет Content-Type - PullRequest
       4

Spring RestTemplate нет Content-Type

3 голосов
/ 16 декабря 2011

Я использовал Spring-Android для подключения к серверу, чтобы получить JSON и сопоставить его с классом объектов:

jars:

jackson-core-asl-1.9.2.jar
jackson-mapper-asl-1.9.2.jar
spring-android-auth-1.0.0.M4.jar
spring-android-core-1.0.0.M4.jar
spring-android-rest-template-1.0.0.M4.jar

source:

RestTemplate restTemplate = new RestTemplate(/* clientHttpRequestFactory */);

ClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory();
restTemplate.setRequestFactory(clientHttpRequestFactory);

MappingJacksonHttpMessageConverter httpMessageConverter = new MappingJacksonHttpMessageConverter();
List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();
supportedMediaTypes.add(new MediaType("application", "json"));
httpMessageConverter.setSupportedMediaTypes(supportedMediaTypes);

List<HttpMessageConverter<?>> httpMessageConverters = restTemplate
                .getMessageConverters();
httpMessageConverters.add(httpMessageConverter);
restTemplate.setMessageConverters(httpMessageConverters);

MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();
map.add("param1", "param1");
map.add("param2", "2");

T t = restTemplate.postForObject(url, map, T.class);

Результатом с сервера является строка json, например:

{"aaa":"111", "bbb":"222"}

Результат:

Caused by: org.springframework.web.client.RestClientException: Cannot extract response: no Content-Type found
     at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:60)
     at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:470)
     at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:425)
     at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:303)

В заголовках ответа не должно быть Content-Type.Как я могу заставить RestTemplate не заботиться о Content-Type?

1 Ответ

0 голосов
/ 25 сентября 2012

Это похоже на недостаток, унаследованный от кода Spring 3.0.x. Подробнее см. https://jira.springsource.org/browse/SPR-7911. Вы можете попробовать один из обходных путей, перечисленных здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...