小编wil*_*ink的帖子

从C#中的context.httprequest读取原始数据

我已经多次看过这个话题,但没有一个解决方案对我有帮助,我不知道为什么没有任何作用.

我有一个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中的字符数相同!我知道内容已经过去,但我不知道如何访问它.

c# xml post http request

2
推荐指数
1
解决办法
4818
查看次数

标签 统计

c# ×1

http ×1

post ×1

request ×1

xml ×1