SimpleClientHttpRequestFactory работает попеременно только на SpringAndroid - PullRequest
4 голосов
/ 18 августа 2011

Я использую SpringAndroid M4.

У меня есть следующий фрагмент кода:

RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(new SimpleClientHttpRequestFactory());
HttpEntity<?> requestEntity = new HttpEntity<Object>(myHeader());
final String url = "my_url";
ResponseEntity<String> responseEntity =
    restTemplate.exchange(url,HttpMethod.GET, requestEntity, String.class);

Верьте или нет, он работает попеременно (сначала да, потом нет, потом да, потом нет, и так далее ..)

Это трассировка стека ошибки (ошибка генерируется в методе restTemplate.exchange), когда она не работает:

08-18 17:55:09.919: ERROR/(7722): java.lang.IllegalArgumentException: No matching constant for [-1]
08-18 17:55:09.919: ERROR/(7722):     at org.springframework.http.HttpStatus.valueOf(HttpStatus.java:380)
08-18 17:55:09.919: ERROR/(7722):     at org.springframework.http.client.SimpleClientHttpResponse.getStatusCode(SimpleClientHttpResponse.java:48)
08-18 17:55:09.919: ERROR/(7722):     at org.springframework.web.client.DefaultResponseErrorHandler.hasError(DefaultResponseErrorHandler.java:45)
08-18 17:55:09.919: ERROR/(7722):     at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:463)
08-18 17:55:09.919: ERROR/(7722):     at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:425)
08-18 17:55:09.919: ERROR/(7722):     at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:401)

Ответы [ 2 ]

0 голосов
/ 24 июля 2012

Это ошибка в SimpleClientHttpResponse. В моем случае это не имело никакого значения, хотя, возможно, код возврата HTTP неверен.

Заменив его на HttpComponentsClientHttpRequestFactory, проблема, похоже, исчезла.

0 голосов
/ 09 марта 2012

Это происходит только при тестировании на эмуляторе? У меня точно такая же проблема, но она возникает только при использовании эмулятора. На реальном устройстве все отлично работает.

...