我有一个包含 WebBrowser
控件的 Windows 窗体应用程序。 WebBrowser
的想法是在没有用户交互的情况下浏览网站。 WebBrowser
通过代理访问互联网。
我可以看到请求通过代理,但由于代理身份验证失败,它们被拒绝了。
我添加了 Proxy-Authorization: Basic
header 。这适用于普通的 http 页面,但它似乎不起作用 https:
var credentialStringValue = "proxyUser:proxyPassword";
byte[] credentialByteArray = ASCIIEncoding.ASCII.GetBytes(credentialStringValue);
var credentialBase64String = Convert.ToBase64String(credentialByteArray);
string Headers = string.Format("Proxy-Authorization: Basic {0}{1}", credentialBase64String, Environment.NewLine);
ws.Navigate(url,TargetFrameName,PostData,Headers);
其中 ws
等于 new WebBrowser()
。凭据是正确的,因为它在我手动执行时有效。
关于如何以编程方式验证代理凭据的任何想法?
最佳答案
// do what you want with proxy class
WebProxy webProxy = new WebProxy(host, port)
{
Credentials = ...
}
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://example.com");
webRequest.Proxy = webProxy;
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
Stream receiveStream = response.GetResponseStream();
WebBrowser webBrowser = new WebBrowser();
webBrowser.DocumentStream = receiveStream;
关于c# - 具有自动代理登录的 WebBrowser 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6184675/