我目前正在尝试将应用程序从 asp.net 移植到 php,但是我只是碰壁了,需要帮助。
我需要将 .aspx 通过 POST 收到的所有数据转储到文件中,但我不知道如何执行此操作
有任何想法吗 ?
您可以使用 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.
}
}
如果您只想要 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,
}
您可以使用BinaryRead
从请求正文中读取:
Request.BinaryRead
或者您可以通过以下方式获得对输入Stream
对象的引用:
Request.InputStream
然后你可以使用CopyStream
:
using (FileStream fs = new FileStream(...))
CopyStream(fs, Request.InputStream);
您可以使用代理应用程序,例如Fiddler。这将让您查看所有传输的数据,并根据需要将其保存到文件中。
最好的方法是通过一些浏览器插件,如Fiddler或LiveHttpHeaders(仅限 Firefox)。然后你可以截取原始的 POST 数据。