Ajuda para ler JSON de HttpContext.InputStream

Eu criei um HttpModule para capturar solicitações para fins de auditoria.

Para solicitações do Ajax para um método da web, eu também gostaria de registrar os dados JSON associados à solicitação.

Por exemplo, solicitação

POST /MyPage.aspx/AddRecord HTTP / 1.1
x-solicitado-com: XMLHttpRequest
Idioma de aceitação: en-gb
Referer:http: // fiddlerlocal: 5000 / AddRecord.aspx
Aceitar: application / json, text / javascript,/
Tipo de Conteúdo: application / json; charset = utf-8
CPU UA: x86
Accept-Encoding: gzip, deflate
Agente do Usuário: Mozilla / 4.0 (compatível; 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)
Anfitrião: fiddlerlocal: 5000
Comprimento do conteúdo: 287
Conexão: Keep-Alive
Pragma: sem cache
Biscoito: .....
{"id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "data": "8-6-2010"}

Eu tentei vários métodos para ler o JSON ({"id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "date": "8-6-2010"}) do HttpContext.InputStream.

Exemplo 1:

Leitor StreamReader = novo StreamReader (request.InputStream);
string encodedString = reader.ReadToEnd ();- ReadToEnd retorna uma string vazia

Exemplo 2:

using (MemoryStream ms = new MemoryStream ())
{
byte [] buffer = novo byte [request.ContentLength];
request.InputStream.Read (buffer, 0, request.ContentLength);
ms.Write (buffer, 0, request.ContentLength);- A matriz de bytes contém o número correto de bytes, mas cada byte tem um valor de 0 - codificado de alguma forma?
retornar Convert.ToBase64String (ms.ToArray ());- não faz nada
return Encoding.UTF8.GetString (ms.ToArray ());- não faz nada
}

Como posso extrair com sucesso os dados do HttpContext.InputStream?

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion