Sto cercando di registrare il contenuto di una richiesta HTTP, utilizzando un IHttpModule in questo modo:Come accedere richiesta InputStream con HttpModule, quindi reimpostare la posizione InputStream
public class LoggingModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.BeginRequest += ContextBeginRequest;
}
private void ContextBeginRequest(object sender, EventArgs e)
{
var request = ((HttpApplication)sender).Request;
string content;
using (var reader = new StreamReader(request.InputStream))
{
content = reader.ReadToEnd();
}
LogRequest(content)
}
}
Il problema è che dopo aver letto il flusso di input per Alla fine, sembra che l'InputStream sia scomparso o più probabilmente, il cursore si trova alla fine del flusso.
Ho provato request.InputStream.Position = 0;
e request.InputStream.Seek(0, SeekOrigin.Begin);
ma nessuno dei due funziona.
Fare attenzione con la codifica lì, penso che vorrete che sia Encoding.UTF8.GetString (byte); – SimonF
Ottima risposta !! +1 –