如何从ASP.NET Web API读取XML?
我有一个Web API,它将读取XML并将其传递给适当的模型进行处理。
我怎样才能收到即将发布的XML? 我应该使用哪种数据类型?
我是否使用StreamReader
, StreamContent
或XmlDocument
或其他?
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(); }