6

我目前正在尝试将应用程序从 asp.net 移植到 php,但是我只是碰壁了,需要帮助。

我需要将 .aspx 通过 POST 收到的所有数据转储到文件中,但我不知道如何执行此操作

有任何想法吗 ?

4

5 回答 5

8

您可以使用 Request 对象的 InputStream 属性。这将为您提供 http 请求的原始数据。通常,您可能希望将其作为自定义 http 处理程序来执行,但我相信您可以随时执行此操作。

if (Request.RequestType == "POST")
{
    using (StreamReader reader = new StreamReader(Request.InputStream))
    {
        // read the stream here using reader.ReadLine() and do your stuff.
    }
}
于 2009-05-15T17:55:30.193 回答
7

如果您只想要 POST 数据,那么您可以使用 Request.Form.ToString() 以 url 编码的方式获取所有数据。

if (Request.RequestType == "POST") {
    string myData = Request.Form.ToString();
    writeData(myData); //use the string to dump it into a file,
}
于 2012-05-09T11:08:13.937 回答
6

您可以使用BinaryRead从请求正文中读取:

Request.BinaryRead

或者您可以通过以下方式获得对输入Stream对象的引用:

Request.InputStream

然后你可以使用CopyStream

using (FileStream fs = new FileStream(...))
    CopyStream(fs, Request.InputStream);
于 2009-05-15T17:54:04.503 回答
2

您可以使用代理应用程序,例如Fiddler。这将让您查看所有传输的数据,并根据需要将其保存到文件中。

于 2009-05-15T18:15:58.257 回答
0

最好的方法是通过一些浏览器插件,如FiddlerLiveHttpHeaders(仅限 Firefox)。然后你可以截取原始的 POST 数据。

于 2009-05-15T17:52:13.573 回答