通过web API调用请求XML文档为XML时出错
本文关键字:XML 文档 出错 请求 web API 调用 通过 | 更新日期: 2023-09-27 18:04:15
我有一个xml文档,我想通过web api调用返回。
我希望允许用户通过内容协商来选择响应。
[HttpGet]
public HttpResponseMessage Get()
{
var doc = new XmlDocument();
doc.LoadXml("<MyExport SomeProperty='Some Value'></MyExport>");
return Request.CreateResponse(HttpStatusCode.OK, doc);
}
当我请求这是一个接受头的应用程序/xml我得到错误:
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>The 'ObjectContent`1' type failed to serialize the response body for content type 'application/xml; charset=utf-8'.</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
我做错了什么?我认为这应该通过内容协商来处理?
这里的问题是您返回的是XML(或者更准确地说,是XmlDocument对象)——因此抢占了任何合理的内容协商。如果客户端请求JSON,但服务器返回XML,就会出现问题。
Web API的思想是,您返回POCO对象,框架将它们自动序列化为所请求的格式。