Как сбросить все данные POST в файл в ASP.NET
Вопрос
В настоящее время я пытаюсь перенести приложение с asp.net на php, однако я просто уперся в стену, и мне нужна помощь с этим.
Мне нужно сбросить все данные, которые .aspx получает через POST, в файл, но я понятия не имею, как это сделать.
Любые идеи ?
Решение
Вы можете использовать свойство InputStream объекта Request.Это даст вам необработанные данные 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);
Вы можете использовать прокси-приложение, такое как Скрипач.Это позволит вам просмотреть все переданные данные, а также сохранить их в файл по мере необходимости.
Лучший способ сделать это — использовать какой-нибудь плагин для браузера, например Скрипач или LiveHttpHeaders (только Firefox).Затем вы можете перехватить необработанные данные POST.