我使用的是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)
答案 0 :(得分:0)
只有在模拟器上进行测试时才会发生这种情况吗? 我有完全相同的问题,但它只发生在我使用模拟器时。 在真实设备上一切正常。
答案 1 :(得分:0)
这似乎是SimpleClientHttpResponse
中的错误。在我的情况下,它似乎没有任何影响,尽管HTTP返回代码可能不正确。
将其替换为HttpComponentsClientHttpRequestFactory
,问题似乎已消失。