使用c#读取HTML页面时出现异常

时间:2014-10-17 04:27:48

标签: c# httpresponse httpwebresponse system.net.webexception system.net.httpwebrequest

我使用下面的代码来阅读HTML代码:

            string urlAddress = "http://google.com";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = null;
                if (response.CharacterSet == null)
                    readStream = new StreamReader(receiveStream);
                else
                    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                string data = readStream.ReadToEnd();
                response.Close();
                readStream.Close();
            }

但是我得到例外:

The remote server returned an error: (407) Proxy Authentication Required

另外,我对app.config文件进行了更改:

 <system.net>
    <defaultProxy useDefaultCredentials="true" />
  </system.net>

但仍然得到同样的错误。

然而,当我在IE中打开并页面时,它会打开而不会询问任何凭据。

2 个答案:

答案 0 :(得分:0)

如果您想下载谷歌页面

,请使用此代码
  using (WebClient web = new WebClient())
     {
          string d=   web.DownloadString("http://google.com");
     }

答案 1 :(得分:0)

当我使用我的Google蜘蛛进行搜索时,我实际上必须实现一个Web浏览器控件并使用它来呈现结果并且看起来像是“人类”。这样,所有请求都可以定时并呈现给页面 - 尤其是使用HttpWebRequest无法呈现的AJAX内容。这很不方便,但100%正常工作。