我从this issue开始在WP7上成功使用Spring.net 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
答案 0 :(得分: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”。