4

我正在使用 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)
4

2 回答 2

0

仅在模拟器上进行测试时才会发生这种情况吗?我有完全相同的问题,但它只发生在我使用模拟器时。在真实设备上一切正常。

于 2012-03-09T10:45:56.053 回答
0

这似乎是SimpleClientHttpResponse. 就我而言,它似乎没有任何影响,尽管 HTTP 返回代码可能不正确。

通过将其替换为HttpComponentsClientHttpRequestFactory,问题似乎已经消失。

于 2012-07-24T12:15:24.853 回答