Cefsharp开发中遇到的问题

本文介绍了CefSharp在遇到不安全的HTTPS网址时的处理方式,通过重写OnCertificateError方法,允许在特定情况下跳过SSL验证。同时,展示了如何使用CefSharp发送HTTP请求,包括设置请求方法、URL和请求标志。在初始化ChromiumWebBrowser时,应注意异步创建的特性,避免未初始化错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.LoadError报错err_aborted

参考:CefSharp如何跳过解决不安全网网址(https)不显示的问题_Ryannn_NN的博客-优快云博客_cefsharp https

原因:CefSharp在遇到不安全证书的网址,如:不安全的https等,默认不显示,任务管理器中线程也不会增加。

其实是CefSharp内核中在ssl证书不安全时,默认抛出了异常,只需要在request中对返回值进行重写,处理异常并返回true即可。

Browser.RequestHandler = new ExampleRequestHandler();
 public class ExampleRequestHandler : RequestHandler
        {
            protected override bool OnCertificateError(IWebBrowser chromiumWebBrowser, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback)
            {
                Task.Run(() =>
                {
                    if (!callback.IsDisposed)
                    {
                        using (callback)
                        {
                            //地址包含报表成分 跳过ssl验证
                            if (requestUrl.Contains("reportSystem"))
                            {
                                callback.Continue(true);//重点部分
                            }
                            else
                            {
                                callback.Continue(false);
                            }
                        }
                    }
                });
                return true;
            }
        }

2.参考网站

----发送HTTP请求

        
            var frame = _chromiumWebBrowser.GetMainFrame();

            //Create a new request knowing we'd like to use PostData
            var request = frame.CreateRequest(initializePostData: true);
            request.Method = "GET";
            request.Url = "htmldemo.html";//这里填静态页面地址
            //Set AllowStoredCredentials so cookies are sent with Request
            request.Flags = UrlRequestFlags.AllowStoredCredentials;
        

            frame.LoadRequest(request);

https://www.youkuaiyun.com/tags/MtTaMg1sODY2MjI1LWJsb2cO0O0O.html

----cefsharp 初始化错误

error:The ChromiumWebBrowser instance creates the underlying Chromium Embedded Framework (CEF) browser instance in an async fashion. The undelying CefBrowser instance is not yet initialized. Use the IsBrowserInitializedChanged event and check the IsBrowserInitialized property to determine when the browser has been initialized.”

ChromiumWebBrowser browser = new ChromiumWebBrowse (); 

方法里面 browser.load(uri); 报以上错误

解决办法:

ChromiumWebBrowser browser = null;头部

browser = new ChromiumWebBrowser(uri, null, null, true);

cefsharp 初始化错误_Gnney的博客-优快云博客

----ChromiumWebBrowser必须展示了才会触发加载完成事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值