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