Como despejar todo os dados POST para um arquivo no ASP.NET
Pergunta
Atualmente estou tentando porta um aplicativo da asp.net para php, no entanto eu só bater em uma parede e precisam de uma mão com isso.
Eu preciso para despejar todos os dados um recebe .aspx via correio para um arquivo, mas eu não tenho idéia de como fazer isso
todas as idéias?
Solução
Você pode usar a propriedade InputStream do objeto Request. Isto lhe dará os dados brutos da solicitação HTTP. Geralmente você pode querer fazer isso como um costume http manipulador, mas eu acredito que você pode fazê-lo a qualquer momento.
if (Request.RequestType == "POST")
{
using (StreamReader reader = new StreamReader(Request.InputStream))
{
// read the stream here using reader.ReadLine() and do your stuff.
}
}
Outras dicas
Se você quiser apenas dados POST, então você pode usar Request.Form.ToString () para obter todos os dados de uma maneira url codificado.
if (Request.RequestType == "POST") {
string myData = Request.Form.ToString();
writeData(myData); //use the string to dump it into a file,
}
Você pode usar BinaryRead
para ler a partir do pedido de corpo:
Request.BinaryRead
Ou você poderia obter uma referência ao objeto Stream
entrada com:
Request.InputStream
Em seguida, você poderia usar CopyStream
:
using (FileStream fs = new FileStream(...))
CopyStream(fs, Request.InputStream);
Você pode usar um aplicativo de proxy, como Fiddler . Isso permitirá que você olhar para todos os dados que foram transferidos, bem como guardá-lo para um arquivo conforme necessário.
A melhor maneira de fazer isso é através de algum navegador plugin como Fiddler ou liveHTTPHeaders (Firefox apenas). Depois, você pode interceptar os dados POST matéria.