Je vois de nombreux exemples, mais tous les lisent lentement, dans des tableaux d’octets ou 256 caractères. Pourquoi?
N'est-il pas recommandé de convertir simplement la valeur résultante Stream
en une chaîne où je peux l'analyser?
Vous devriez créer un StreamReader
autour du flux, puis appeler ReadToEnd
.
Vous devriez envisager d'appeler WebClient.DownloadString
au lieu.
Vous pouvez utiliser StreamReader.ReadToEnd()
,
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = reader.ReadToEnd();
}
Comme @Heinzi l'a mentionné, le jeu de caractères de la réponse doit être utilisé.
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();
}
Richard Schneider a raison. utilisez le code ci-dessous pour récupérer des données sur le site qui n'est pas utf8 carset aura une mauvaise chaîne.
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = reader.ReadToEnd();
}
"Je ne peux pas voter.a écrit ceci.
Vous pouvez créer un StreamReader
autour du flux, puis appeler StreamReader.ReadToEnd()
.
StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream());
var responseData = responseReader.ReadToEnd();