Запрос REST с определенным типом контента - PullRequest
0 голосов
/ 14 июня 2011

Я успешно использую Spring.net Rest на WP7, так как эта проблема .

Для моей службы 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 Ответ

1 голос
/ 14 июня 2011

Лучший способ сделать это - настроить свой конвертер со свойством «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», который перехватывает выполнение запроса.

...