My ASP. NET Приложение REST возвращает JSON, даже если клиент запрашивает XML - PullRequest
0 голосов
/ 25 мая 2020

У меня есть веб-приложение ASP. NET Web API2. Для своей конфигурации он имеет:

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;

Клиент запрашивает XML:

private static HttpWebRequest CreatetRequest(Uri uri, string method, int timeout)
{
    var request = (HttpWebRequest)WebRequest.Create(uri);
    request.Method = method;
    request.Timeout = timeout == 0 ? System.Threading.Timeout.Infinite : timeout;
    request.Accept = "application/xml";
    request.ContentType = "application/xml";
    return request;
}

Но возвращается JSON. И когда клиент затем выполняет следующий вызов:

       using (var stream = response.GetResponseStream())
        {
                body = XDocument.Load(XmlReader.Create(stream));

, он выдает исключение, потому что не может загрузить JSON как XML. Что мне нужно сделать на стороне сервера, чтобы исправить это (я не могу изменить клиентскую сторону - этот код отсутствует и используется)?

1 Ответ

0 голосов
/ 03 июля 2020

Нашел - один из возвращаемых объектов не имеет конструктора без параметров. XML сериализация требует этого, а JSON - нет.

...