Как преобразовать WebResponse.GetResponseStream в строку? Я вижу много примеров, но все они читают их в байтовые массивы или 256 символов за раз, медленно. Почему? Не рекомендуется ли просто преобразовывать полученное значение Stream в строку, где я могу его проанализировать? Ответ 1 Вы должны создать StreamReader вокруг потока, а затем вызвать ReadToEnd. Вместо этого вы должны называть WebClient.DownloadString. Ответ 2 Вы можете использовать StreamReader.ReadToEnd(), using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); } Ответ 3 Как отметил @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(); } Ответ 4 Ричард Шнайдер прав. используйте код ниже для извлечения данных с сайта, который не является кодировкой utf8, получит неправильную строку. using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); } " Я не могу голосовать. Так написал это. Ответ 5 Вы можете создать StreamReader вокруг потока, а затем вызвать StreamReader.ReadToEnd(). StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream()); var responseData = responseReader.ReadToEnd();
Ответ 1 Вы должны создать StreamReader вокруг потока, а затем вызвать ReadToEnd. Вместо этого вы должны называть WebClient.DownloadString.
Ответ 2 Вы можете использовать StreamReader.ReadToEnd(), using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); }
Ответ 3 Как отметил @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(); }
Ответ 4 Ричард Шнайдер прав. используйте код ниже для извлечения данных с сайта, который не является кодировкой utf8, получит неправильную строку. using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); } " Я не могу голосовать. Так написал это.
Ответ 5 Вы можете создать StreamReader вокруг потока, а затем вызвать StreamReader.ReadToEnd(). StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream()); var responseData = responseReader.ReadToEnd();