J'ai créé un HttpModule pour capturer des requêtes à des fins d'audit.Aide à la lecture de JSON à partir de HttpContext.InputStream
Pour les requêtes Ajax à une méthode Web, je voudrais également enregistrer les données JSON associées à la requête.
Par exemple, demande
HTTP/1.1
x-POST demandé avec /MyPage.aspx/AddRecord: XMLHttpRequest
Accept-Language: fr-fr
Referer: http://fiddlerlocal:5000/AddRecord.aspx
Accept: application/json, text/javascript, /
Type de contenu: application/json; charset = utf-8
UA-CPU: x86
Accept-Encoding: gzip, dégonfler
User-Agent: 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)
hôte: fiddlerlocal: 5000
Content-Length: 287
Connection: Keep-Alive
Pragma: no-cache
Cookie: .....
{ "id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "date": "06/08/2010"}
J'ai essayé une variété de méthodes pour lire le JSON ({ "id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "date": "06/08/2010"}) de la HttpContext.InputStream.
Exemple 1:
lecteur StreamReader = new StreamReader (request.InputStream);
chaîne encodedString = lecteur.ReadToEnd(); - ReadToEnd retourne une chaîne vide
Exemple 2:
utilisant MemoryStream (ms = new MemoryStream()) {
byte [] buffer = new byte [request.ContentLength ]
request.InputStream.Read (buffer, 0, request.ContentLength);
ms.Ecrit (buffer, 0, request.ContentLength); - Le tableau d'octets contient le nombre correct d'octets, mais chaque octet a une valeur de 0 - codé comment?
return Convert.ToBase64String (ms.ToArray()); - ne fait rien
return Encoding.UTF8.GetString (ms.ToArray()); - ne fait rien
}
Comment puis-je extraire avec succès les données de HttpContext.InputStream?
Merci d'avance.
Nous vous remercions de votre réponse très rapide. – blahblahblah