Not*_*tMe 11 c# asp.net-web-api
我有一个Web API,它将读取XML并将其传递给适当的模型进行处理.
我怎样才能收到即将发布的XML?我应该使用哪种数据类型?
什么时候使用StreamReader,StreamContent或者XmlDocument还是其他?
Des*_*tar 13
ASP.NET Web API使用内容协商将传入的http请求自动反序列化为模型类.开箱即用,这将适用于任何XML,JSON或wwww-form-urlencoded消息.
public class ComputerController : ApiController
{
public void Post(ComputerInfo computer)
{
// use computer argument
}
}
Run Code Online (Sandbox Code Playgroud)
创建一个映射到XML属性的模型类.
public class ComputerInfo
{
public string Processor { get; set; }
public string HardDrive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这个传入的XML将被反序列化,以便在Post方法中对计算机参数进行水合.
<ComputerInfo>
<Processor>AMD</Processor>
<HardDrive>Toshiba</HardDrive>
</ComputerInfo>
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你想手动读取和解析传入的xml,你可以这样做
string incomingText = this.Request.Content.ReadAsStringAsync().Result;
XElement incomingXml = XElement.Parse(incomingText);
Run Code Online (Sandbox Code Playgroud)
任何传入的内容都可以作为字节流读取,然后根据需要进行处理。
public async Task<HttpResponseMessage> Get() {
var stream = await Request.Content.ReadAsStreamAsync();
var xmlDocument = new XmlDocument();
xmlDocument.Load(stream);
// Process XML document
return new HttpResponseMessage();
}
Run Code Online (Sandbox Code Playgroud)