如何将整个POST数据转储到ASP.NET中的文件

时间:2009-05-15 17:48:01

标签: asp.net request postdata

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

我需要将.aspx通过POST收到的所有数据转储到文件中,但我不知道如何做到这一点

任何想法?

5 个答案:

答案 0 :(得分: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.
    }
}

答案 1 :(得分:6)

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

Request.BinaryRead

或者您可以使用以下命令获取对输入Stream对象的引用:

Request.InputStream

然后你可以使用CopyStream

using (FileStream fs = new FileStream(...))
    CopyStream(fs, Request.InputStream);

答案 2 :(得分:6)

如果您只想要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,
}

答案 3 :(得分:2)

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

答案 4 :(得分:0)

执行此操作的最佳方法是使用某些浏览器插件,例如FiddlerLiveHttpHeaders(仅限Firefox)。然后你可以拦截原始的POST数据。