如何从ASP.NET Web API中读取XML
本文关键字:API 读取 XML Web NET ASP | 更新日期: 2023-09-27 18:30:03
我有一个Web API,它将读取XML并将其传递给适当的模型进行处理。
我如何接收即将到来的XML?我应该使用哪种数据类型?
我使用StreamReader
、StreamContent
或XmlDocument
还是其他?
ASP.NET Web API使用内容协商将传入的http请求自动反序列化为模型类。开箱即用,这将适用于任何XML、JSON或wwww形式的URL编码消息。
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方法中的计算机参数水合。
<ComputerInfo>
<Processor>AMD</Processor>
<HardDrive>Toshiba</HardDrive>
</ComputerInfo>
无论出于何种原因,如果您想手动读取和解析传入的xml,您可以这样做
string incomingText = this.Request.Content.ReadAsStringAsync().Result;
XElement incomingXml = XElement.Parse(incomingText);
任何传入内容都可以作为字节流读取,然后根据需要进行处理。
public async Task<HttpResponseMessage> Get() {
var stream = await Request.Content.ReadAsStreamAsync();
var xmlDocument = new XmlDocument();
xmlDocument.Load(stream);
// Process XML document
return new HttpResponseMessage();
}