我正在使用SpringAndroid M4。SimpleClientHttpRequestFactory只能在SpringAndroid上交替使用
我有下面的代碼片段:
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)
nope,設備上也存在問題。每第二次請求都能正常工作因此我只是設法解決問題。捕捉異常,然後在catch代碼中重複請求...這是最簡單的事情,非常髒,但它的工作原理。奧祕...... – virtual82
確實很奇怪。我剛剛注意到在真實設備上顯示的錯誤。不是每個第二個請求,但。我想我必須抓住它並像現在一樣重複請求。 –
您是否嘗試過使用HttpComponentsClientHttpRequestFactory來代替?這似乎解決了這個問題。 你見過這個線程嗎? http://forum.springsource.org/showthread.php?124053-IllegalArgumentException-No-matching-constant-for-1-after-upgrading-from-M4-to-RC –