我目前正在尝试将应用程序从asp.net移植到php,但是我只是碰壁而需要一只手。
我需要将.aspx通过POST收到的所有数据转储到文件中,但我不知道如何做到这一点
任何想法?
答案 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)
执行此操作的最佳方法是使用某些浏览器插件,例如Fiddler或LiveHttpHeaders(仅限Firefox)。然后你可以拦截原始的POST数据。