bah*_*ith 2 c# screen-scraping webrequest
我目前正在使用SpicIE开发一个IE插件.
这个插件做了一些网页抓取,类似于MSDN上发布的示例:
WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Stream dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader (dataStream);
string responseFromServer = reader.ReadToEnd ();
reader.Close ();
dataStream.Close ();
response.Close ();
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,我收到以下错误消息:
远程服务器返回错误:(407)需要代理身份验证.
我目前正在代理服务器后面工作,并使用NetworkCredential类手动提供我的网络凭据
request.Credentials = new System.Net.NetworkCredential("name", "password", "domain");
Run Code Online (Sandbox Code Playgroud)
但我仍然收到同样的错误.
即使我的问题解决了,我知道该插件的一些用户将在代理服务器后面.
我想知道如何获取IE凭据并在我的代码中使用它来将其分配给request.Credentials.
也许是这样的:
request.Credentials = IE.DefaultCredentials;
Run Code Online (Sandbox Code Playgroud)
您正在设置站点的凭据,但您需要代理的凭据.
(另外,使用using响应/流/读取器的语句而不是手动关闭它们,否则在抛出异常时它们会泄漏.)
编辑:例如,要使用代理的默认凭据:
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3048 次 |
| 最近记录: |