Cefsharp开发中遇到的问题

1.LoadError报错err_aborted

参考:CefSharp如何跳过解决不安全网网址(https)不显示的问题_Ryannn_NN的博客-CSDN博客_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.csdn.net/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的博客-CSDN博客

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值