如何从ASP.NET Web API读取XML?

我有一个Web API,它将读取XML并将其传递给适当的模型进行处理。

我怎样才能收到即将发布的XML? 我应该使用哪种数据类型?

我是否使用StreamReaderStreamContentXmlDocument或其他?

ASP.NET Web API使用内容协商将传入的http请求自动反序列化为模型类。 开箱即用,这将适用于任何XML,JSON或wwww-form-urlencoded消息。

 public class ComputerController : ApiController { public void Post(ComputerInfo computer) { // use computer argument } } 

创建一个映射到XML属性的模型类。

 public class ComputerInfo { public string Processor { get; set; } public string HardDrive { get; set; } } 

这个传入的XML将被反序列化以在Post方法中水合计算机参数。

  AMD Toshiba  

如果由于某种原因你想手动读取和解析传入的xml,你可以这样做

 string incomingText = this.Request.Content.ReadAsStringAsync().Result; XElement incomingXml = XElement.Parse(incomingText); 

任何传入的内容都可以作为字节流读取,然后根据需要进行处理。

 public async Task Get() { var stream = await Request.Content.ReadAsStreamAsync(); var xmlDocument = new XmlDocument(); xmlDocument.Load(stream); // Process XML document return new HttpResponseMessage(); }