Cómo volcar los datos POST enteros en un archivo en ASP.NET
Pregunta
Actualmente estoy tratando de puerto de una aplicación de asp.net a PHP, sin embargo me acaba de golpear una pared y necesitan una mano con esto.
tengo que volcar todos los datos de un recieves .aspx vía POST a un archivo, pero no tengo ni idea de cómo hacer esto
alguna idea?
Solución
Puede utilizar la propiedad InputStream del objeto Request. Esto le dará los datos en bruto de la petición HTTP. En general, es posible que desee hacer esto como un controlador personalizado http, pero yo creo que se puede hacer en cualquier momento.
if (Request.RequestType == "POST")
{
using (StreamReader reader = new StreamReader(Request.InputStream))
{
// read the stream here using reader.ReadLine() and do your stuff.
}
}
Otros consejos
Si lo que desea datos POST, entonces se puede utilizar Request.Form.ToString () para obtener todos los datos de una manera URL codificada.
if (Request.RequestType == "POST") {
string myData = Request.Form.ToString();
writeData(myData); //use the string to dump it into a file,
}
Puede utilizar BinaryRead
para leer desde la solicitud del cuerpo:
Request.BinaryRead
O se podría obtener una referencia a la entrada de un objeto con Stream
:
Request.InputStream
A continuación, puede utilizar CopyStream
:
using (FileStream fs = new FileStream(...))
CopyStream(fs, Request.InputStream);
Se puede usar un proxy de aplicación tales como violinista . Esto le permitirá ver todos los datos que se transfieren, así como ahorrar en un archivo según sea necesario.
La mejor manera de hacerlo es a través de algún plugin para el navegador como violinista o LiveHTTPHeaders (sólo para Firefox). A continuación, puede interceptar los datos POST prima.