2011-06-14 1 views
0

J'utilise avec succès Spring.net Rest sur WP7 depuis this issue.Demande REST avec le type de contenu spécifique

Mon service REST requiert un type de contenu spécifique. J'ai essayé d'utiliser un autre intercepteur de requête mais XElementHttpMessageConverter remplace le type de contenu.

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 

Répondre

1

La meilleure façon ici pour le faire est de configurer votre convertisseur avec le « SupportedMediaTypes » propriété:

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); 
} 

BTW, vous pouvez le faire avec un intercepteur aussi, mais pas avec le « IClientHttpRequestFactoryInterceptor » qui intercepte la création de requête. Vous devez utiliser à la place "IClientHttpRequestBeforeInterceptor" qui intercepte l'exécution de la requête.

Questions connexes