【问题标题】:Web API Request Data error on second time第二次 Web API 请求数据错误
【发布时间】:2014-06-06 14:24:43
【问题描述】:

奇怪的错误。

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 但为什么最后一行的错误?

【问题讨论】:

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


    【解决方案1】:

    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);
    

    【讨论】:

    • 谢谢 :) 所以,我们必须将它的位置设置为 0,这样我们才能再次读取它。现在明白了..
    猜你喜欢
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2018-12-28
    • 2020-11-13
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    相关资源
    最近更新 更多