所以我仍在尝试在Cefsharp 3中找到该功能(如果它在那里),其中可以检查请求响应中的标头。如果它不在那里,是因为它不在CEF 3中吗?或者,我应该从哪里开始寻找,如果我实施它?
答案 0 :(得分:4)
此功能尚未在CEF 3中使用。这是一个突出的问题: https://code.google.com/p/chromiumembedded/issues/detail?id=515
有一个解决方法......
目前没有很好的方法来过滤CEF3的响应内容。您可以通过CefRequestHandler :: GetResourceHandler使用CefResourceHandler并使用CefURLRequest自行执行请求/返回响应内容。
...但是在CefSharp 3中无法使用此解决方法,因为CefURLRequestClient
和朋友未实现。
在这个阶段,根据你对C ++的舒适度,你可以考虑:
CefURLRequestClient
和朋友的C#包装器贡献给CefSharp项目 - 这是轻量级C ++和C#的组合。您可能还有兴趣知道有一种方法可以在JavaScript中获取HTTP标头,只要您自己使用AJAX启动了请求: Accessing the web page's HTTP Headers in JavaScript
通过将JavaScript注入当前页面,可以使用CefSharp 3轻松完成此类解决方案。
答案 1 :(得分:0)
提供更多控制的替代方案是使用schemehandler(它更干净的IMO)。
添加拦截资源加载的方案处理程序:
CEF.RegisterScheme("ascheme", new HandlerFactory());
然后(一旦你创建了一个琐碎的工厂或2)你可以使用这个覆盖:
public bool ProcessRequestAsync(IRequest request, ISchemeHandlerResponse response, OnRequestCompletedHandler requestCompletedCallback)
响应包含Headers / MimeType和Stream以允许更多控制。我希望这会有所帮助。