通过web api调用将xml文档作为xml请求时出错

时间:2015-07-23 19:56:47

标签: c# asp.net-web-api

我有一个xml文档,我想通过web api调用返回。

我想通过内容协商允许用户选择响应。

 [HttpGet]
 public HttpResponseMessage Get()
 {
      var doc = new XmlDocument();
      doc.LoadXml("<MyExport SomeProperty='Some Value'></MyExport>");

      return Request.CreateResponse(HttpStatusCode.OK, doc);
  }

当我请求这个application / xml的Accept标头时,我收到错误:

<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>

我做错了什么我认为这应该通过内容协商处理?

1 个答案:

答案 0 :(得分:0)

这里的问题是你正在返回XML(或者更确切地说,是一个XmlDocument对象)---所以要抢占任何合理的内容协商。如果客户端要求JSON,但服务器返回XML,则会出现问题。

使用Web API的想法是返回POCO对象,框架将它们自动序列化为请求的格式。