如何将WebResponse.GetResponseStream转换为字符串?

时间:2011-09-25 02:44:43

标签: c# .net string httpwebresponse

我看到很多例子,但是他们都慢慢地将它们一次读入字节数组或256个字符。为什么呢?

不建议将生成的Stream值转换为可以解析它的字符串吗?

4 个答案:

答案 0 :(得分:131)

您可以使用StreamReader.ReadToEnd()

using (Stream stream = response.GetResponseStream())
{
   StreamReader reader = new StreamReader(stream, Encoding.UTF8);
   String responseString = reader.ReadToEnd();
}

答案 1 :(得分:59)

您应该在流周围创建StreamReader,然后调用ReadToEnd

您应该考虑改为调用WebClient.DownloadString

答案 2 :(得分:4)

理查德施耐德是对的。 使用下面的代码从站点获取数据,这不是utf8 charset会得到错误的字符串。

true

” 我不能投票。所以写了这个。

答案 3 :(得分:2)

您可以在信息流周围创建StreamReader,然后拨打StreamReader.ReadToEnd()

StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream());
var responseData = responseReader.ReadToEnd();