string proxyHost = "XXXXX";//代理域名
int proxyPort = XXXX;//代理端口号
string proxyUser = "XXXXXX";//代理账号
string proxyPass = "XXXXXX";//代理密码
//"http://代理端口号:端口号"; 端口号:http-dyn.abuyun.com(http://http-dyn.abuyun.com则不需要http://)
string ProxyAddress = "http://" + proxyHost + ":" + proxyPort;
ChromiumWebBrowser browser = browserForm.GetBrowser(1);//需要使用代理的窗口
SetProxy(browser, ProxyAddress);
if (checkBox1.Checked)
{
CefSharp.CefSharpSettings.Proxy = new CefSharp.ProxyOptions(proxyHost, proxyPort.ToString(), proxyUser, proxyPass);
}
else
{
CefSharp.CefSharpSettings.Proxy = null;
}
async private void SetProxy(ChromiumWebBrowser cwb, string Address)
{
//判断是否使用代理
if (checkBox1.Checked)
{
try
{
await Cef.UIThreadTaskFactory.StartNew(delegate
{
var rc = cwb.GetBrowser().GetHost().RequestContext;
var proxyConfig = new Dictionary<string, object>();
proxyConfig["mode"] = "fixed_servers";
proxyConfig["server"] = Address;
string error;
bool success = rc.SetPreference("proxy", proxyConfig, out error);
});
}
catch (Exception ex)
{
//输出错误日志
}
}
else
{
//关闭代理
await Cef.UIThreadTaskFactory.StartNew(delegate
{
var rc = cwb.GetBrowser().GetHost().RequestContext;
if (rc !=null)
{
var proxyMode = "direct";
string error;
rc.SetPreference("proxy.mode", proxyMode,out error);
// 清除代理服务器设置
rc.SetPreference("proxy.server", string.Empty,out error);
}
});
}
}