gpt4 book ai didi

c# - 从 Web API C# 返回 XML

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:42 25 4
gpt4 key购买 nike

只要是 Web API 方面的新手,这里都是新手。

网络 API:

[HttpGet]
public IHttpActionResult Test()
{
var doc = new XmlDocument();
XmlElement tournament = (XmlElement)doc.AppendChild(doc.CreateElement("Tournament"));
XmlElement match = (XmlElement)tournament.AppendChild(doc.CreateElement("Match"));
match.SetAttribute("ID", "SomeMatch");

return Ok(doc.InnerXml);
}

结果:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">&lt;Tournament&gt;&lt;Match ID="SomeMatch" /&gt;&lt;/Tournament&gt;</string>

两个问题:

  1. 为什么在我的 XML 中没有它时它被包装在这个字符串元素中?
  2. 为什么 < 被转换为 "<"和 > 到“>”

以及如何返回

<Tournament>
<Match ID="SomeMatch" /></Tournament>

最佳答案

由于您从操作中返回一个字符串,ASP.Net Web API 正在创建等效的 XML 来表示一个字符串。

现在,如果您要确保 API 使用 XML 序列化,客户端可以将 accept header 添加到请求中。或者,您可以通过使用以下构造函数返回 Content 以您拥有的方式或在操作本身中指定格式化程序:

return Content (HttpStatusCodeHere, doc.DocumentElement, Configuration.Formatters.XmlFormatter)

请注意,我无权访问 Visual Studio,因此类/属性名称可能不准确。

关于c# - 从 Web API C# 返回 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51587350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com