将CefSharp与Owin TestServer一起使用

时间:2016-01-06 01:04:14

标签: c# owin chromium-embedded katana cefsharp

由于潜在的防火墙限制以及需要让我的应用程序的许多实例无法竞争端口,我想使用Microsoft.Owin.Testing.TestServer类来创建将服务的内存中Web服务器对嵌入式CefSharp浏览器的请求(WPF或Winforms都可以)。

我可以创建没有问题的TestServer。如何配置CefSharp WebBrowser控件以使用该测试服务器而不是使用标准OS网络堆栈?

如果我正在构建自己的请求,我将使用TestServer提供的HttpClient或使用TestServer的处理程序创建一个新的HttpClient。 CefSharp WebBrowser中是否有任何等效功能?

1 个答案:

答案 0 :(得分:0)

您可以截取请求并自行完成。如果您实施IResourceHandlerFactory,那么随后IResourceHandler(只需在IResourceHandler中返回自定义IResourceHandlerFactory.GetResourceHandler的新实例)

https://github.com/cefsharp/CefSharp/blob/cefsharp/45/CefSharp/IResourceHandlerFactory.cs#L22

将为每个请求实例化您的自定义ResourceHandler的新实例。以async方式处理请求相对简单,只需在ProcessRequestAsync中调用您的请求,当它完成填充数据执行{{1}的本地流时},返回流并填充callback.Continue()中的响应。我喜欢在GetResponse语句中包装callback,因为它包装了一个托管资源,应该明确处理。

您可以在https://github.com/cefsharp/CefSharp/blob/cefsharp/45/CefSharp.Example/CefSharpSchemeHandler.cs#L92看到一个基本示例(不会发出网络请求,但主体是相同的)