0

我正在编写外部站点将向其发送 XML 的 .aspx 页面的 c# 组件。我的页面需要能够接收 XML 并对其进行解析,但我正在等待接收 XML。

我的页面被 XML 页面击中,但 Request.Files.Count==0 和 Request.InputStream.Length==0,即使我知道这两个语句都应该是错误的,因为页面正在记录接收文件和 HttpContext.Current != null。我正在使用以下代码:

    Stream stream = HttpContext.Current.Request.InputStream;
    stream.Position = 0;
    XmlTextReader reader = new XmlTextReader(stream);

    log("" + Request.Files.Count, tw);
    log("Does the current request exist?",tw);
    log(HttpContext.Current != null ? "Yes" : "No",tw);
    log("XML Retrieved!", tw);
    log("Byte Length of " + stream.Length, tw);

我的 log.txt 文件有以下输出:

    0
    Does the current request exist?
    Yes
    XML Retrieved!
    Byte Length of 0
4

1 回答 1

0

问题已解决,在这种情况下,我需要引用 Page.Request.InputStream 而不是 HttpContext.Current.Request.InputStream。

我用于接收 XML 并将其读入字符串的代码:

    Page.Response.ContentType = "text/xml";
    StreamReader sr = new StreamReader(Page.Request.InputStream);
    String main = Server.UrlDecode(sr.ReadToEnd());
于 2012-07-05T14:12:25.670 回答