0

我创建了 ac# 网页,它将监听来自服务的 POST 数据。我已经看到我可能需要使用 Request.GetBufferlessInputStream() 来读取页面数据。然后,我将在我的代码中进一步处理这些数据。

但是,我无法获取帖子数据!我发现我需要使用

Stream httpStream = Request.GetBufferlessInputStream();
Response.Write(httpStream.ToString());

但我不知道如何阅读。我尝试从 0 读取到最后,但只返回数字(假设是字节数据?)。

我基本上想看一个字符串!我一直在使用 CURL 来伪造帖子。该代码在这里

curl -H "Content Type: application/xml" -d "<callback var=\"matt\">" -X POST http://localhost:1111/Default.aspx

所以我希望我的脚本能够输出<callback var="matt">. 有任何想法吗?

4

2 回答 2

2

这就是你需要的——

Stream stream = Request.InputStream;

StreamReader reader = new StreamReader(stream, Request.ContentEncoding);

string text = reader.ReadToEnd();
于 2012-04-30T16:03:25.590 回答
0
using (var streamReader = new StreamReader(Request.GetBufferlessInputStream(), Request.ContentEncoding))
{
    string requestBody = await streamReader.ReadToEndAsync();
}

这使用非阻塞异步方法读取,并且该using语句正确处理流。

于 2017-02-07T17:32:58.713 回答