如何转换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(); }
“我不能投票。所以写了这个。