如何转换WebResponse.GetResponseStream返回一个字符串
本文关键字:一个 字符串 返回 WebResponse 何转换 转换 GetResponseStream | 更新日期: 2023-09-27 18:09:30
我看过很多例子,但它们都是缓慢地将它们读入字节数组或一次256个字符。为什么?
是不可取的,只是将结果Stream
值转换成一个字符串,我可以解析它?
您可以使用StreamReader.ReadToEnd()
,
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = reader.ReadToEnd();
}
您应该在流周围创建一个StreamReader
,然后调用ReadToEnd
。
你应该考虑调用WebClient.DownloadString
。
正如@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();
}
Richard Schneider是对的。使用下面的代码从非utf8字符集的站点获取数据将得到错误的字符串。
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();