使用CEfSharp之旅11(使用CEfSharp之旅11)
使用CEfSharp之旅11(使用CEfSharp之旅11)
版本91
直接上代码:
替换下这个工具类即可。
不明白的进群加好友咨询。
 public class request : IRequestHandler
    {
        public event Action<string> msg;
        public event Action<string  object> msg2;
        public bool GetAuthCredentials(IWebBrowser browserControl  IBrowser browser  IFrame frame  bool isProxy 
            string host  int port  string realm  string scheme  IAuthCallback callback)
        {
 
            return false;
        }
 
        public IResponseFilter GetResourceResponseFilter(IWebBrowser browserControl  IBrowser browser  IFrame frame  IRequest request  IResponse response)
        {
 
            if (response.MimeType.ToLower().IndexOf("text") > -1 || response.MimeType.ToLower().IndexOf("json") > -1)
            {
 
                var filter = new AppendResponseFilter(request.Url  response.MimeType);
 
                filter.VOIDFUN  = Filter_VOIDFUN;
                return filter;
            }
            return null;
 
        }
        private void Filter_VOIDFUN(string arg1  string arg2  string arg3  long arg4)
        {
            msg2?.Invoke(arg1  arg2);
        }
 
 
        public bool OnBeforeBrowse(IWebBrowser browserControl  IBrowser browser  IFrame frame  IRequest request 
            bool isRedirect)
        {
 
            var m = request.Method;
            msg?.Invoke(request.Url);
            msg?.Invoke(m);
            if (request.Method == "POST")
            {
                using (var postData = request.PostData)
                {
                    if (postData != null)
                    {
                        var elements = postData.Elements;
 
                        var charSet = request.GetCharSet();
 
                        foreach (var element in elements)
                        {
                            if (element.Type == PostDataElementType.Bytes)
                            {
                                var body = element.GetBody(charSet);
                                msg?.Invoke(body);
                            }
                        }
                    }
                }
            }
 
            return false;
        }
 
        public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl  IBrowser browser  IFrame frame  IRequest request  IRequestCallback callback)
        {
            var m = request.Method;
            msg?.Invoke(request.Url);
            msg?.Invoke(m);
            if (request.Method == "POST")
            {
                using (var postData = request.PostData)
                {
                    if (postData != null)
                    {
                        var elements = postData.Elements;
 
                        var charSet = request.GetCharSet();
 
                        foreach (var element in elements)
                        {
                            if (element.Type == PostDataElementType.Bytes)
                            {
                                var body = element.GetBody(charSet);
                                msg?.Invoke(body);
                            }
                        }
                    }
                }
            }
 
            return CefReturnValue.Continue;
        }
 
        public bool OnCertificateError(IWebBrowser browserControl  IBrowser browser  CefErrorCode errorCode  string requestUrl  ISslInfo sslInfo  IRequestCallback callback)
        {
            return true;
        }
 
        public bool OnOpenUrlFromTab(IWebBrowser browserControl  IBrowser browser  IFrame frame  string targetUrl  WindowOpenDisposition targetDisposition  bool userGesture)
        {
            return false;
        }
 
        public void OnPluginCrashed(IWebBrowser browserControl  IBrowser browser  string pluginPath)
        {
 
        }
 
        public bool OnProtocolExecution(IWebBrowser browserControl  IBrowser browser  string url)
        {
            return false;
        }
 
        public bool OnQuotaRequest(IWebBrowser browserControl  IBrowser browser  string originUrl  long newSize  IRequestCallback callback)
        {
            return false;
        }
 
        public void OnRenderProcessTerminated(IWebBrowser browserControl  IBrowser browser  CefTerminationStatus status)
        {
 
        }
 
        public void OnRenderViewReady(IWebBrowser browserControl  IBrowser browser)
        {
 
        }
 
        public void OnResourceLoadComplete(IWebBrowser browserControl  IBrowser browser  IFrame frame  IRequest request  IResponse response  UrlRequestStatus status  long receivedContentLength)
        {
 
        }
 
        public void OnResourceRedirect(IWebBrowser browserControl  IBrowser browser  IFrame frame  IRequest request  ref string newUrl)
        {
 
        }
 
        public void OnResourceRedirect(IWebBrowser browserControl  IBrowser browser  IFrame frame  IRequest request  IResponse response  ref string newUrl)
        {
 
        }
 
        public bool OnResourceResponse(IWebBrowser browserControl  IBrowser browser  IFrame frame  IRequest request  IResponse response)
        {
            return false; ;
 
        }
 
        public bool OnSelectClientCertificate(IWebBrowser browserControl  IBrowser browser  bool isProxy  string host  int port  X509Certificate2Collection certificates  ISelectClientCertificateCallback callback)
        {
            return true;
        }
 
        public bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser  IBrowser browser  IFrame frame  IRequest request  bool userGesture  bool isRedirect)
        {
            var m = request.Method;
            msg?.Invoke(request.Url);
            msg?.Invoke(m);
            if (request.Method == "POST")
            {
                using (var postData = request.PostData)
                {
                    if (postData != null)
                    {
                        var elements = postData.Elements;
 
                        var charSet = request.GetCharSet();
 
                        foreach (var element in elements)
                        {
                            if (element.Type == PostDataElementType.Bytes)
                            {
                                var body = element.GetBody(charSet);
                                msg?.Invoke(body);
                            }
                        }
                    }
                }
            }
 
            return false;
        }
 
        public IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser  IBrowser browser  IFrame frame  IRequest request  bool isNavigation  bool isDownload  string requestInitiator  ref bool disableDefaultHandling)
        {
            return null;
        }
 
        public bool GetAuthCredentials(IWebBrowser chromiumWebBrowser  IBrowser browser  string originUrl  bool isProxy  string host  int port  string realm  string scheme  IAuthCallback callback)
        {
            return false;
        }
 
        public void OnDocumentAvailableInMainFrame(IWebBrowser chromiumWebBrowser  IBrowser browser)
        {
          //  throw new NotImplementedException();
        }
    





