我正在尝试访问网页上的信息。我第一次这样做了。 这个问题是它太慢了。仅在一个页面上执行此操作,在浏览器上加载速度非常快,但在这里需要永久。 我这里唯一需要的是页面后面的HTML,所以我要问,我的代码是否以某种方式下载图像? 任何帮助都会很好地加快这个过程。
string url;
HttpWebRequest pedido = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resposta = (HttpWebResponse)pedido.GetResponse();
//On the line above it takes forever to load.
StreamReader SR = new StreamReader(resposta.GetResponseStream());
string html;
string tituloTemp = "";
do
{
html = SR.ReadLine();
if (html.Contains("<title>"))
tituloTemp = html;
} while (!(html.Contains("<title>")));
SR.Close();
答案 0 :(得分:1)
用Fiddler检查交易。
可能是DNS查询超时或身份验证质询。使用Fiddler,您将能够看到浏览器和应用程序转换的时间细分。一切都会变得清晰。
答案 1 :(得分:0)
你的问题很可能是ReadLine(),只有在它遇到换行符时才会返回。如果页面没有换行符,那么您可能会看到超时。您还要扫描两次“”,因此您应该重新考虑解析方法。
我建议您将整个响应读入内存,然后为您的标记解析。这些链接与C#解析器相关,可以为您提供更强大的解决方案:
答案 2 :(得分:0)
我实际上在堆栈溢出时找到了答案: 链接在这里: HTTPWebResponse + StreamReader Very Slow