我已经多次看到这个话题,但没有一个解决方案对我有帮助,我不知道为什么没有任何效果。
我有一个 C# web 部件,我只是想读取 http post 请求的数据内容。请求中有一些 xml,但是当我尝试在 Web 部件中读取它时,它并没有显示出来。它只给我标题数据和一些服务器变量。
我试图阅读的请求是通过 chrome 的 Simple Rest 扩展提交的。当我用 fiddler 监控时,我可以看到请求,当我点击 TextView 时,我可以看到所有 XML 没有问题。那为什么它没有显示在服务器上呢?
我尝试使用Context.Request.SaveAs()
,但这似乎只给了我标题数据。我还尝试遍历Context.Request.Params
并打印每个参数,但它们都不包含 xml。
最后,我尝试使用读取请求的内容
Context.Request.ContentEncoding
.GetString(Context.Request.BinaryRead(Context.Request.TotalBytes))
并且
string strmContents = "";
using (StreamReader reader = new StreamReader(Context.Request.InputStream))
{
while (reader.Peek() >= 0)
{
strmContents += reader.ReadLine();
}
}
但是这两种方法都会导致空字符串。
真正让我感到困惑(和恶化)的是,如果我查看Context.Request.ContentLength
,它与我的 XML 中的字符数相同!我知道内容正在通过,但我不知道如何访问它。