2011-09-27 2 views
0

Иногда я получаю отвратительный ответ от нескольких веб-сайтов.Как получить содержимое httpWebresponse в строковой форме?

Вот мой код:

Stream responseStream = response.GetResponseStream(); 
buffer = new Byte[256];// 
int bytesRead; 
while ((bytesRead = responseStream.Read(buffer, 0, buffer.Length)) > 0) 
{ 
    outStream.Write(buffer, 0, bytesRead); 
    //resp=resp+ .UTF8.GetString(buffer, 0, bytesRead); 
    resp=resp + Encoding.ASCII.GetString(buffer); //resp is string 
} 

, когда я прошу от www.google.co.in я получаю следующие символы в соотв строки:

\ Ь \ 0 \ 0 \ 0 \ 0 \ 0 ??} у F ????????? ?????? Z {7m ??? оХ \ R Y ??? 33 ?? г;??? у ???? п? 0?

Как мне решить эту проблему? Это связано с кодированием?

+0

Пожалуйста, отредактируйте ваш вопрос самостоятельно. Его очень трудно понять. И выберите контент или код и нажмите «{}», чтобы представлять свои коды или какой-то специальный контент. –

+0

@ kalyan - вопрос понятный сейчас? – purvang

+0

Возможный дубликат [проблемы с кодировкой содержимого в ответ от HttpWebRequest] (http://stackoverflow.com/questions/6103708/encoding-issues-with-content-in-response-from-httpwebrequest) – V4Vendetta

ответ

6

Ответ я получил был GZip-сжата, так что я просто распакованный поток ответа, как показано ниже:

Stream responseStream = response.GetResponseStream(); 
responseStream = new GZipStream(responseStream, CompressionMode.Decompress); 

сейчас можно считывать поток с использованием кода я представленной выше.

@Kalyan Спасибо за вашу помощь !!!

Смежные вопросы