0

外部サイトがXMLを送信する.aspxページのc#コンポーネントを作成しています。私のページはXMLを受信して​​解析できる必要がありますが、XMLの受信にハングアップしています。

私のページはXMLページにヒットしていますが、Request.Files.Count==0とRequest.InputStream.Length==0ですが、ページが受信をログに記録しているため、これらのステートメントは両方ともfalseである必要があります。ファイルと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

問題は解決しました。この場合、HttpContext.Current.Request.InputStreamではなくPage.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 に答える