第二次Web API请求数据错误

时间:2014-06-06 06:19:36

标签: c# .net asp.net-web-api asp.net-web-api2

奇怪的错误。

var xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(this.Request.Content.ReadAsStreamAsync().Result);

var xmlDoc1 = new System.Xml.XmlDocument();
xmlDoc1.Load(this.Request.Content.ReadAsStreamAsync().Result);

WEB API中,我尝试将POST数据加载到xmlXoc它运作良好

当我尝试再次将其加载到xmlDoc1(新变量)时,我收到Root Element missing错误。

我看到ReadAsStreamAsyncRead-Only-Stream,但为什么最后一行出错?

1 个答案:

答案 0 :(得分:3)

Stream保存在局部变量中,并在第二次读取时将其重置为开头。

var stream = this.Request.Content.ReadAsStreamAsync().Result

var xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(stream);

// RESET 
stream.Position = 0;
var xmlDoc1 = new System.Xml.XmlDocument();
xmlDoc1.Load(stream);