Как конвертировать WebResponse.GetResponseStream возвращает в строку?
Я вижу много примеров, но все они читают их в массивы байтов или 256 символов за раз, медленно. Зачем?
Не рекомендуется просто преобразовать полученный Stream значение в строку, где я могу разобрать его?
5 ответов:
вы должны создать
StreamReaderвокруг потока, то вызовReadToEnd.вы должны рассмотреть вызова
WebClient.DownloadStringвместо.
можно использовать
StreamReader.ReadToEnd(),using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); }
Как упоминал @Heinzi, следует использовать набор символов ответа.
var encoding = response.CharacterSet == "" ? Encoding.UTF8 : Encoding.GetEncoding(response.CharacterSet); using (var stream = response.GetResponseStream()) { var reader = new StreamReader(stream, encoding); var responseString = reader.ReadToEnd(); }
Ричард Шнайдер прав. используйте код ниже, чтобы получить данные с сайта, который не является кодировкой utf8, получит неправильную строку.
using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); }" я не могу ... vote.so написал это.