После Darrel Miller's guide Я отправляю необработанные данные на свой веб-контроллер api и сохраняю его. Содержимое может быть application/xml или application/json.Web Api 2 Содержание Обсуждение не подчиняется Принять заголовок
В соответствующем методе получения я получаю опубликованный контент, анализируя XElement для содержимого XML или JToken для json и возвращаю OK (json) или OK (xml).
public IHttpActionResult Get()
{
// obtain parsed JToken or XElement
return OK(parsedObject);
}
Проблема заключается в том, что это не повинуется Accept заголовок, например, возвращающегося оригинальный JSON, когда Accept это «приложение/XML». Это по дизайну или я чего-то не хватает?
Я ожидаю this вид поведения.
Редактировать - заголовок Accept подчиняется, если я изменяю содержимое, переданное методу OK, на parsedObject.ToString(), поэтому, похоже, проблема заключается в преобразовании объекта JToken в XML.
Я не удалил его, GlobalConfiguration.Configuration.Formatters содержит System.Net.Http.Formatting.XmlMediaTypeFormatter. –
Если объект не является готовым к использованию в качестве xml, система будет использовать форматтер по умолчанию. Я не могу здесь использовать xmlformatter или не способен распознать его как действительный xml. Вы пытались заставить его? –
Вы правы, пытаясь вручную использовать JsonConvert. + 1, отметив, что система использует форматтер по умолчанию в качестве резервной копии. Не уверен, что мне это нравится. –