Помогите прочитать JSON из HttpContext.InputStream

Я создал HttpModule для сбора запросов в целях аудита.

Для запросов Ajax к веб-методу я также хотел бы регистрировать данные JSON, связанные с запросом.

Например, запрос

POST /MyPage.aspx/AddRecord HTTP / 1.1
x-required-with: XMLHttpRequest
Accept-Language: en-gb
Referer:Http: // fiddlerlocal: 5000 / AddRecord.aspx
Принять: приложение / JSON, текст / JavaScript,/
Тип контента: приложение / JSON; кодировка = UTF-8
UA-CPU: x86
Accept-Encoding: gzip, выкачать
User-Agent: Mozilla / 4.0 (совместимо; 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)
Принимающая сторона: fiddlerlocal: 5000
Длина контента: 287
Подключение: Keep-Alive
Прагма: без кеша
Cookie: .....
{ "Идентификатор": "282aa3b5-b55f-431C Вет-916e-60433fdb61c0", "дата": "8-6-2010"}

Я пробовал различные методы для чтения JSON ({"id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "date": "8-6-2010"}) из HttpContext.InputStream.

Пример 1:

StreamReader reader = новый StreamReader (request.InputStream);
string encodedString = reader.ReadToEnd ();- ReadToEnd возвращает пустую строку

Пример 2:

использование (MemoryStream ms = new MemoryStream ())
{
byte [] buffer = new byte [request.ContentLength];
request.InputStream.Read (buffer, 0, request.ContentLength);
ms.Write (буфер, 0, request.ContentLength);- Массив байтов содержит правильное количество байтов, но каждый байт имеет значение 0 - закодировано как-то?
return Convert.ToBase64String (ms.ToArray ());- ничего не делает
return Encoding.UTF8.GetString (ms.ToArray ());- ничего не делает
}

Как я могу успешно извлечь данные из HttpContext.InputStream?

Заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос