我看到了许多示例,但所有示例一次都将它们缓慢地读入字节数组或256个字符。为什么?
仅将结果Stream
值转换为可以解析的字符串是否明智?
我看到了许多示例,但所有示例一次都将它们缓慢地读入字节数组或256个字符。为什么?
仅将结果Stream
值转换为可以解析的字符串是否明智?
Answers:
您应该StreamReader
在流周围创建一个,然后调用ReadToEnd
。
您应该考虑WebClient.DownloadString
改为致电。
User-Agent
。
<a href=
不是原来的,而是<A href=
。那还是和编码有关User-Agent
吗?
WebClient
并HttpWebRequest
使用不涉及浏览器的原始HTTP。如果不同的浏览器显示不同的View Source,那就是一个User-Agent
问题。
您可以使用StreamReader.ReadToEnd()
,
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = reader.ReadToEnd();
}
StreamReader
第二个参数Encoding.UTF8
。刚开始查看MS文档时没有注意到这一点
GetResponse and GetResponseStream
可以抛出异常