2014-03-03 41 views
3

我需要使用輸出XML的WebService。在下面的代碼片段:Android Annotations + RestTemplate - 以字符串形式獲取響應xml

  1. 的getResult方法可以返回HTML標記(如<p>標籤)XML。
  2. 因此,我必須在解析它之前先手動轉換XML。
  3. 但RestTemplate在其他調用中正常工作。所以我不想丟棄它,無處不在寫手動邏輯。

問題

  • 是否有一個內置的方式來取回原始XML的使用RestTemplate字符串?
  • 我是否必須編寫自定義轉換器?任何指針?

以下是我的代碼:

@Rest(rootUrl = "http://my.root.url", converters ={SimpleXmlHttpMessageConverter.class }) 
public interface MyRestClient { 

    @Get("/path/to/restmethod/{day}") 
    MyResponse getResult(int day); <-------------- Returns null when return type is changed to String 

} 

我試圖返回類型設置爲String。但是,它返回null與此錯誤:Failed to convert value of type 'null' to required type 'java.lang.String'

回答

0

好吧自己找到了答案。除了將返回類型更改爲字符串外,我還必須添加StringHttpMessageConverter作爲轉換器。下面的代碼片段:

@Rest(rootUrl = "http://my.root.url", converters = { StringHttpMessageConverter.class, SimpleXmlHttpMessageConverter.class}) 

注意: 轉換器的順序很重要。

相關問題