如何转换WebResponse.GetResponseStream返回string?

我看到很多例子,但是所有这些例子都是一次慢慢读入字节数组或者256个字符。 为什么?

仅仅将结果的Stream值转换为一个可以parsing它的string是不可取的?

你应该在stream的周围创build一个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(); } 

你可以在stream的周围创build一个StreamReader ,然后调用StreamReader.ReadToEnd()

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

理查德·施耐德是正确的。 使用下面的代码从网站获取数据是不是UTF8字符集将得到错误的string。

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

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