ejemplo - httpwebresponse c# example
Cómo convertir WebResponse.GetResponseStream return en una cadena? (5)
Veo muchos ejemplos, pero todos los leen en matrices de bytes o 256 caracteres a la vez, lentamente. ¿Por qué?
¿No es recomendable convertir el valor de Stream
resultante en una cadena donde puedo analizarlo?
Como @Heinzi mencionó, se debe usar el conjunto de caracteres de la respuesta.
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();
}
Debe crear un StreamReader
alrededor de la transmisión y luego llamar a ReadToEnd
.
Debería considerar llamar a WebClient.DownloadString
lugar.
Puede crear un StreamReader
alrededor de la transmisión y luego llamar a StreamReader.ReadToEnd()
.
StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream());
var responseData = responseReader.ReadToEnd();
Puede usar StreamReader.ReadToEnd()
,
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = reader.ReadToEnd();
}
Richard Schneider tiene razón. use el código a continuación para obtener datos del sitio que no sea utf8 charset obtendrá la cadena incorrecta.
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = reader.ReadToEnd();
}
"No puedo votar. Así escribí esto.