2011-06-14 57 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”。

相关问题