2016-11-14 3 views
0

私は春には新しく、バージョン4.3.0を使用しています。私のコードでは、別の残りの呼び出しの中でメソッドを呼び出すと、常にボディがnullになっています。しかし、私は郵便配達を使用してこのメ​​ソッドをテストするとき、それは完全に正常に動作します。私はここで何が欠けているのか分かりません。私は他の同様の質問を見て、HttpEntityオプションを試しましたが、まだ私はここで何かを見逃しています。春休みテンプレート本体がnullですresponseEntity.getBody()

ここに私のコードです。

@RequestMapping(value = "/location/{uuid}", method = RequestMethod.GET) 
public ArrayList<String> getLocation(@PathVariable("uuid") String uuid) { 

    String uriString = "http://user1:[email protected]/LocationProvider/api/" + uuid; 

    try { 
     HttpHeaders headers = new HttpHeaders(); 
     headers.setContentType(MediaType.APPLICATION_XML); 
     HttpEntity<?> entity = new HttpEntity<String>(headers); 

     ResponseEntity<String> responseEntity = restTemplate.exchange(uriString, HttpMethod.GET, entity, String.class); 
     String locations = responseEntity.getBody(); 

     // THIS IS THE RESPONSE I GET IN POSTMAN BUT IN DEBUGGER ITS NULL 
//   <?xml version="1.0" encoding="ISO-8859-1"?> 
//   <Locations> 
//    <City name="New" street="First_Ave" state=""/> 
//    <City name="old" street="Second_Ave" state=""/> 
//   </Locations> 
     return locations; 

    } catch (RestClientException e) { 
     logger.error(e.getMessage(), e); 
     return null; 
    } 
} 

ありがとうございました。

+0

に注意を払うことは良いアイデアだと思います。郵便受けの右隅にある "code"リンクをクリックしてHTTP形式でエクスポートすることができます – ScanQR

+0

あなたはレスポンスとしてnull値を取得していますか? –

+0

このrestTemplate.getMessageConverters()を追加してみてください。 .add(0、new StringHttpMessageConverter(Charset.forName( "ISO-8859-1"))); – cralfaro

答えて

0

コードの観点から見てもうまくいったようです。私が郵便配達員のコードを呼び出すとき、uriStringの最後に "/ n"はありませんでした。

一方、メソッドが他のメソッドによって呼び出されていたときは、 "/ n"を使用していました。

私はちょうど以下のように私のuriに.trim()を追加しました。

String uriString = "http://user1:[email protected]/LocationProvider/api/" + uuid.trim(); 

私はそれがあなたの郵便配達依頼ダンプが提供してくださいすべての用船

関連する問題