2011-06-14 46 views
0

自從this issue以來,我在WP7上成功使用Spring.net Rest。具有特定內容類型的REST請求

我的REST服務需要特定的內容類型。我試圖使用另一個請求攔截器,但XElementHttpMessageConverter覆蓋內容類型。

public MyClient(string baseAddress) 
{ 
    restTemplate = new RestTemplate(baseAddress); 
    //restTemplate.RequestInterceptors.Add(new NoCacheRequestInterceptor()); 
    restTemplate.MessageConverters.Add(new XElementHttpMessageConverter()); 
} 

public MyObject GetMyObject(int id) 
{ 
    XElement element = restTemplate.GetForObject<XElement>("path/{id}", id); 
    //.. 
    return myObject; 
} 

// more methods 

回答

1

這裏做到這一點,最好的辦法是用「SupportedMediaTypes」屬性來配置你的轉換器:

public MyClient(string baseAddress) 
{ 
    restTemplate = new RestTemplate(baseAddress); 
    //restTemplate.RequestInterceptors.Add(new NoCacheRequestInterceptor()); 

    XElementHttpMessageConverter linqXmlConverter = new XElementHttpMessageConverter(); 
    linqXmlConverter.SupportedMediaTypes = new MediaType[] { MediaType.Parse("type/subtype") }; 
    restTemplate.MessageConverters.Add(linqXmlConverter); 
} 

順便說一句,你可以做到這一點與攔截太多,但不與「IClientHttpRequestFactoryInterceptor」攔截請求創建。 您應該使用攔截請求執行的「IClientHttpRequestBeforeInterceptor」。

相關問題