CefSharp SetProxyAsync:导航前先等待并检查结果
RequestContext.SetProxyAsync 在 CEF 的 UI 线程上安排偏好设置;WinForms/WPF 的 UI 线程并不自动就是该线程。
使用为既定浏览器服务的已初始化请求上下文:
using System;
using CefSharp;
var result = await requestContext.SetProxyAsync(
"http", "proxy.example", 8080);
if (!result.Success)
{
throw new InvalidOperationException(result.ErrorMessage);
}导航之前先等待操作完成并处理失败。对于获准的公共站点检测,HTTP 代理列表可为 HTTP 主机和端口参数提供候选项。SetProxyAsync 会在 CEF UI 线程上安排偏好更新,并选择 fixed_servers。
如果结果报告该偏好为只读,请检查命令行中的代理标志;它们可能阻止本次更新。仅仅等待并不会把被拒绝的更改变成已生效的路由。
直接调用 SetPreference 仍然需要 CEF 的 UI 线程。在常见的多线程消息循环配置下,宿主应用的 WinForms 或 WPF UI 线程是另一个上下文。
共享该请求上下文的浏览器共享同一偏好。这决定的是端点;单独的认证回调必须将凭据限制在其预期的代理质询上。