首页 > 解决方案 > 即使客户端请求 XML,我的 ASP.NET REST 应用程序仍在返回 JSON

问题描述

我有一个 ASP.NET Web API2 Web 应用程序。对于其配置,它具有:

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 加载。我需要在服务器端做什么来解决这个问题(我无法更改客户端 - 该代码已失效并正在使用中)?

标签: asp.net-web-apixml-serialization

解决方案


找到它 - 返回的对象之一 dd 没有无参数构造函数。XML 序列化需要,而 JSON 不需要。


推荐阅读