2013-06-07 2 views
0

Я пытаюсь перехватить textraw из моего пользовательского OutputCacheProvider CacheEntry Buffer.Извлечь html из буфера OutputCache

Когда я использую cacheEntry.ResponseElements.First() Я получаю половину моей html-страницы, но когда я пытаюсь выполнить все chunck, у меня есть ответ на терапию (выглядит как двоичные сериализованные данные). Как я могу сделать, как коснуться:

IOutputCacheEntry cacheEntry = cachedItem.Item as IOutputCacheEntry; 
StringBuilder textResponse = new StringBuilder(); 
       foreach (var responseRaw in cacheEntry.ResponseElements.Where(s=>!(s is FileResponseElement))) 
       { 

        Byte[] bytes = (Byte[])responseRaw.GetType().GetField("_buffer", 
         BindingFlags.NonPublic | 
         BindingFlags.Instance).GetValue(responseRaw); 
        textResponse.Append(Encoding.Default.GetString(bytes));  
       } 

редактирование: Я пытался Concat всех байт [] до "Stringify" их, и я попытался с UTF-8 кодировкой.

ответ

0

Вы используете правильную кодировку? Encoding.Default возвращает кодировку для текущей кодовой страницы ANSI. Это может не сработать, если вы используете UTF-8 или другую кодировку. Вы должны проверить заголовок Content-type:, чтобы определить правильную кодировку.

+0

Я тоже пытался с UTF-8 –

+0

Я попробую с заголовком содержимого –