更新时间:2023-08-31 22:24:10
实际上,这非常容易。
我的问题是我试图设置RequestContext在浏览器初始化之后,它是只读的。
My problem was that I was trying to set the RequestContext after the browser initialization, while it's read only.
但是它可以在构造函数中作为参数传递:
But it can be passed as a parameter in the constructor :
var rc1 = new RequestContext();
ChromiumWebBrowser firstbrowser = new ChromiumWebBrowser("", null, rc1);
var rc2 = new RequestContext();
ChromiumWebBrowser secondbrowser = new ChromiumWebBrowser("", null, rc2);
对Amaitland的所有信用
All credit to Amaitland
对于更可重用的方式是,可以像这样将代理设置过程逐出:
For a more reusable way, the process to set the proxy can be deported like this :
async private Task SetProxy(ChromiumWebBrowser cwb, string Address)
{
await Cef.UIThreadTaskFactory.StartNew(delegate
{
var rc = cwb.GetBrowser().GetHost().RequestContext;
var v = new Dictionary<string, object>();
v["mode"] = "fixed_servers";
v["server"] = Address;
string error;
bool success = rc.SetPreference("proxy", v, out error);
});
}
然后我可以打电话:
SetProxy(firstbrowser, "123.123.123.123:1234")