我已经多次看过这个话题,但没有一个解决方案对我有帮助,我不知道为什么没有任何作用.
我有一个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))
Run Code Online (Sandbox Code Playgroud)
并且
string strmContents = "";
using (StreamReader reader = new StreamReader(Context.Request.InputStream))
{
while (reader.Peek() >= 0)
{
strmContents += reader.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
但这两种方法都会导致空字符串.
让我感到困惑(并加剧)的是,如果我查看Context.Request.ContentLength它,它与我的XML中的字符数相同!我知道内容已经过去,但我不知道如何访问它.