Как конвертировать 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 написал это.