Ich habe ein HttpModule zum Erfassen von Anforderungen für Überwachungszwecke erstellt.Hilfe beim Lesen von JSON aus HttpContext.InputStream
Für Ajax-Anfragen an eine Web-Methode möchte ich auch die JSON-Daten, die mit der Anfrage verbunden sind, protokollieren.
Eg Anfrage
POST /MyPage.aspx/AddRecord HTTP/1.1
x-requested-mit: XMLHttpRequest
Accept-Language: en-de
Referer: http://fiddlerlocal:5000/AddRecord.aspx
Accept: application/json, text/javascript, /
Inhaltstyp: application/json; charset = utf-8
UA-CPU: x86
Accept-Encoding: gzip,
User-Agent abzulassen: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: fiddlerlocal: 5000
Content-Length: 287
Connection: Keep-Alive-
Pragma: no-cache
Cookie: .....
{ "id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "Datum": "2010.08.06"}
Ich habe eine Vielzahl von Methoden versucht, die JSON ({ "id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "Datum": "2010.08.06"}) zu lesen, aus dem HttpContext.InputStream.
Beispiel 1:
Streamreader reader = new Streamreader (request.InputStream);
Zeichenfolge encodedString = reader.ReadToEnd(); - ReadToEnd gibt eine leere Zeichenfolge
Beispiel 2:
Verwendung (Memory ms = new Memory()) {
byte [] buffer = new byte [request.ContentLength ];
request.InputStream.Read (Puffer, 0, request.ContentLength);
ms.Write (Puffer, 0, request.ContentLength); - Das Byte-Array enthält die richtige Anzahl von Bytes, aber jedes Byte hat einen Wert von 0 - codiert wie?
Rückgabe Convert.ToBase64String (ms.ToArray()); - macht nichts
return Encoding.UTF8.GetString (ms.ToArray()); - macht nichts
}
Wie kann ich die Daten erfolgreich aus HttpContext.InputStream extrahieren?
Vielen Dank im Voraus.
Vielen Dank für Ihre sehr schnelle Antwort. – blahblahblah