Example #1
0
        void IRequestHandler.OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            var args = new OnResourceLoadCompleteEventArgs(browserControl, browser, frame, request, response, status, receivedContentLength);

            OnResourceLoadCompleteEvent?.Invoke(this, args);
        }
        public override void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            if (!request.Url.Contains("/kcsapi/") || response.MimeType != "text/plain")
            {
                return;
            }

            Debug.WriteLine($"response [MimeType:{response.MimeType} StatusCode:{response.StatusCode} StatusText:{response.StatusText} ErrorCode:{response.ErrorCode.ToString()}");
            if (responseDic.TryGetValue(request.Identifier, out KcsapiResponseFilter filter))
            {
                Debug.WriteLine("\n" + filter.jsonStr);
                var json = Utf8Json.JsonSerializer.Deserialize <dynamic>(filter.jsonStr);
            }
        }
Example #3
0
        public void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            try
            {
                #region baslangic
                if (durum = true)
                {
                    if (File.Exists(dosya) == true)
                    {
                        satir = File.ReadAllLines(dosya);
                        if (satir.Length > 0)
                        {
                            double i = ((100 - Convert.ToDouble(satir[2])) / 10) * 2;
                            chromiumWebBrowser.SetZoomLevel(((100 - Convert.ToDouble(satir[2])) / 10) * 2);
                            durum = false;
                        }
                        else
                        {
                            chromiumWebBrowser.SetZoomLevel(0);
                            durum = false;
                        }
                    }
                }
                #endregion
            }
            catch (Exception)
            {
            }



            int code = response.StatusCode;


            // exit if frame is invalid (if the frame has closed, for example)
            if (!frame.IsValid)
            {
                return;
            }
        }
Example #4
0
 /// <summary>
 /// 在某个资源加载后触发
 /// </summary>
 /// <param name="chromiumWebBrowser"></param>
 /// <param name="browser"></param>
 /// <param name="frame"></param>
 /// <param name="request"></param>
 /// <param name="response"></param>
 /// <param name="status"></param>
 /// <param name="receivedContentLength"></param>
 public void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     if (this.InterceptResourceLoadComplete != null)
     {
         this.InterceptResourceLoadComplete(chromiumWebBrowser, browser, frame, request, response, status, receivedContentLength);
     }
 }
 protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     if (request.Method.Equals("POST") && request.Url.Contains("order_list"))
     {
         var filter = FilterManager.GetFileter(request.Identifier.ToString()) as TestJsonFilter;
         if (filter == null)
         {
             return;
         }
         ASCIIEncoding encoding = new ASCIIEncoding();
         //这里截获返回的数据
         var data      = encoding.GetString(filter.DataAll.ToArray());
         var orderList = JsonConvert.DeserializeObject <Order>(data);
         if (orderList.orders != null && orderList.orders.Count != 0)
         {
             Thread.Sleep(1000);
             FilterManager.AddOrder(orderList);
             //反向排序
             orderList.orders.Reverse();
             //获取第一个
             var    order = orderList.orders.FirstOrDefault();
             string json  = "{\"timeout\":1300,\"type\":\"all\",\"page\":1,\"pay_channel_list\":[\"9\",\"30\",\"31\",\"35\",\"38\",\"52\",\"97\",\"122\",\"135\",\"322\",\"-1\"],\"origin_host_name\":\"mobile.yangkeduo.com\",\"size\":10,\"offset\":\"#offset#\"}";
             json = json.Replace("#offset#", order.order_sn);
             chromiumWebBrowser.Navigate(Encoding.Default.GetBytes(json), request);
         }
     }
 }
Example #6
0
        //
        // Summary:
        //     Called on the CEF IO thread when a resource load has completed.
        //
        // Parameters:
        //   frame:
        //     The frame that is being redirected.
        //
        //   request:
        //     the request object - cannot be modified in this callback
        //
        //   response:
        //     the response object - cannot be modified in this callback
        //
        //   status:
        //     indicates the load completion status
        //
        //   receivedContentLength:
        //     is the number of response bytes actually read.
        public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            if (request.Url.Contains(".user.js"))
            {
                var code = browserControl.GetSourceAsync().ToString();
                myForm.monyet.InstallScript(request.Url, code);
            }
            if (oldAddress != browserControl.Address || oldAddress == "")
            {
                oldAddress = browserControl.Address;
                Resources.Clear();
                ResponseHeaders.Clear();
                RequestHeaders.Clear();
            }
            Dictionary <string, string> dictionary = response.Headers.AllKeys.ToDictionary((string x) => x, (string x) => response.Headers[x]);

            ResponseHeaders.Add(new HeaderWrapper(request.Identifier, dictionary));
            Dictionary <string, string> strs = request.Headers.AllKeys.ToDictionary((string x) => x, (string x) => request.Headers[x]);

            RequestHeaders.Add(new HeaderWrapper(request.Identifier, strs));
            if (responseDictionary.TryGetValue(request.Identifier, out MemoryStreamResponseFilter memoryStreamResponseFilter))
            {
                byte[] data = memoryStreamResponseFilter.Data;
                Resources.Add(new RequestWrapper(request.Url, request.ResourceType, response.MimeType, data, request.Identifier));
            }
            //var x = response.MimeType;
            //scrape all link on current web here
            //myForm.X.Appender(request.Url.GetQuery("path"));

            //myForm.X.Appender(request.Url + " = " + status);

            /*
             * if (request.Url.Contains(myForm.ViewsourceURL))
             * {
             *
             *  var code = myForm.viewer.View(request.Url.GetQuery("path"));
             *  MessageBox.Show(code.ToString());
             *  var t = string.Format("var x = @{0}{1}{0};", '"', code);
             *  t += string.Format("$({0}#xmpTagId{0}).text(x);", '"');
             *  myForm.X.ExecuteJs(t);
             *
             * }
             */
        }
Example #7
0
 void IRequestHandler.OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     try
     {
         var pageFilter = FilterManager.GetFileter(request.Identifier.ToString());
         if (pageFilter != null)
         {
             pageFilter.SetHeader(request.Headers, response.ResponseHeaders);
             pageFilter.SendNotify();
         }
     }
     catch { }
 }
        protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            var url = new Uri(request.Url);

            Debug.WriteLine("Debug OnResourceLoadComplete({0})", url);
            //if (url.Scheme == CefSharpSchemeHandlerFactory.SchemeName && memoryStream != null)

            if (memoryStream != null)
            {
                //TODO: Do something with the data here
                var data       = memoryStream.ToArray();
                var dataLength = data.Length;
                //NOTE: You may need to use a different encoding depending on the request
                var dataAsUtf8String = Encoding.UTF8.GetString(data);
                Debug.WriteLine("Debug OnResourceLoadComplete dataLength=({0})", dataLength);
                string cacheimage = "c:\\cefcache\\" + Path.GetFileName(url.ToString());
                if (!File.Exists(cacheimage))
                {
                    StreamWriter writer = new StreamWriter(new FileStream(cacheimage, FileMode.OpenOrCreate));
                    writer.BaseStream.Write(data, 0, data.Length);
                }
            }

            /*
             * var filter = FilterManager.GetFileter(request.Identifier.ToString()) as TestImageFilter;
             * if (filter == null)
             * {
             *  Debug.WriteLine("Debug OnResourceLoadComplete filter=null,reques={0}", request.Identifier.ToString());
             *  return;
             * }
             * byte[] data = filter.dataAll.ToArray();
             * //filter_NotifyData(data);
             * string str = System.Text.Encoding.UTF8.GetString(data);
             * int getDataPageNum = 0; // page number of the currently obtained data
             * IList<IPostDataElement> elements = request.PostData.Elements;
             * foreach (IPostDataElement item in elements)
             * {
             *  String postData = System.Text.Encoding.UTF8.GetString(item.Bytes);
             *  Debug.WriteLine("Debug OnResourceLoadComplete dataLength=({0})", item.Bytes);
             *  //postData is the post form data submitted by the page, you can do the query
             * }
             */
        }
Example #9
0
 public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     throw new NotImplementedException();
 }
Example #10
0
        private void RequestHandler_InterceptResourceLoadComplete(IWebBrowser arg1, IBrowser arg2, IFrame arg3, IRequest arg4, IResponse arg5, UrlRequestStatus arg6, long arg7)
        {
            var stream = ResourceCacheManager.GetResource(arg4.Identifier);

            if (stream != null)
            {
                stream.Seek(0, System.IO.SeekOrigin.Begin);
            }
            try
            {
                this.OnResourceLoadComplete?.Invoke(this, new ResourceLoadCompleteEventArgs(arg4.Url, arg4.ResourceType, arg7, stream, arg6));
            }
            finally
            {
                ResourceCacheManager.DeleteResource(arg4.Identifier);
            }
        }
Example #11
0
        protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            string url      = request.Url;
            string url_file = url.Split('?')[0];
            var    uri      = new Uri(url);
            string type     = response.MimeType;

            string file = Utility.build_path_file_save(uri);

            bool ok = false;

            if (File.Exists(file))
            {
                ok = true;
            }
            else
            {
                byte[] buf = null;
                if (memoryStream != null)
                {
                    buf = memoryStream.ToArray();
                }
                switch (type)
                {
                case "text/html":
                    if (file.EndsWith(".html") == false)
                    {
                        file += ".html";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllText(file, Encoding.UTF8.GetString(buf).Replace("index.html", "_index.html"));
                    }
                    break;

                case "text/css":
                    if (file.EndsWith(".css") == false)
                    {
                        file += ".css";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllText(file, Encoding.UTF8.GetString(buf));
                    }
                    break;

                case "text/javascript":
                case "application/javascript":
                    if (file.EndsWith(".js") == false)
                    {
                        file += ".js";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllText(file, Encoding.UTF8.GetString(buf));
                    }
                    break;

                case "image/jpeg":
                    if (file.EndsWith(".jpg") == false)
                    {
                        file += ".jpg";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllBytes(file, buf);
                    }
                    break;

                case "image/jpg":
                    if (file.EndsWith(".jpg") == false)
                    {
                        file += ".jpg";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllBytes(file, buf);
                    }
                    break;

                case "image/gif":
                    if (file.EndsWith(".gif") == false)
                    {
                        file += ".gif";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllBytes(file, buf);
                    }
                    break;

                case "image/png":
                    if (file.EndsWith(".png") == false)
                    {
                        file += ".png";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllBytes(file, buf);
                    }
                    break;

                case "image/svg+xml":
                    if (file.EndsWith(".svg") == false)
                    {
                        file += ".svg";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllBytes(file, buf);
                    }
                    break;

                case "font/woff2":
                    if (file.EndsWith(".woff2") == false)
                    {
                        file += ".woff2";
                    }
                    //Console.WriteLine("OK: " + type + " -> " + url_file + " => " + file);
                    if (buf != null)
                    {
                        ok = true;
                        File.WriteAllBytes(file, buf);
                    }
                    break;

                default:
                    //Console.WriteLine("NO: " + type + " -> " + url);
                    // The number of bytes read
                    try
                    {
                        new WebClient().DownloadFile(url, file);
                        ok = true;
                    }
                    catch { }

                    break;
                }
            }

            if (ok)
            {
                m_site.LOG_OK.Append(type + " -> " + url + ": " + Path.GetFileName(url_file) + " | " + file + Environment.NewLine);
            }
            else
            {
                m_site.LOG_ERROR.Append(type + " -> " + url + ": " + Path.GetFileName(url_file) + " | " + file + Environment.NewLine);
            }
        }
Example #12
0
        /// <summary>
        /// 【setup2】提取cookie
        /// </summary>
        /// <param name="browserControl"></param>
        /// <param name="browser"></param>
        /// <param name="frame"></param>
        /// <param name="request"></param>
        /// <param name="response"></param>
        /// <param name="status"></param>
        /// <param name="receivedContentLength"></param>
        public override void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            if (response.StatusCode != 200)
            {
                return;
            }
            var url       = new Uri(request.Url);
            var extension = url.ToString().ToLower();

            if (SystemSetting.SystemSettingDict["OpenDebug"] == "true")
            {//开启debug模式
                extension.WriteLog(ELogType.Account, true);
                //输入写入到请求日志
                IPostData data = request.PostData;
                if (data != null)
                {
                    //请求内容被转换为了文件流
                    //输出有请求参数的URL
                    StringBuilder requestHead = new StringBuilder();
                    requestHead.AppendLine(string.Format("url hava request param-> {0} ", extension));
                    foreach (var item in request.Headers.AllKeys)
                    {
                        requestHead.Append(string.Format("{0} : {1};", item, request.Headers[item]));
                    }
                    requestHead.ToString().WriteLog(ELogType.HttpRequest, true);
                }
            }
            //if (!extension.Contains(SystemConfig.CookieDomain))
            //{
            //    return;
            //}
            if ((!SystemConfig.AnywhereGetCookie && extension != SystemConfig.InitCookeKey))
            {
                return;
            }
            //这是请求响应头
            ICookieManager cookie = Cef.GetGlobalCookieManager();

            if (SystemConfig.AnywhereGetCookie)
            {//无限制提取cookie
                cookie.VisitAllCookies(new CookieVisitor());
            }
            else
            {
                foreach (var urlFrom in SystemConfig.CookieFrom)
                {
                    cookie.VisitUrlCookies(urlFrom, false, new CookieVisitor());
                }
            }
            if (extension == SystemConfig.TockenAfterUrl)
            {//是否已经获取到了tocken
                ExistsTocken = true;
            }
            if (CookieHandle.GetCoreCookie(CookieVisitor.CookieDict))
            {  //从其他应用中获取到了cookie
                ExistsTocken = true;
            }
            if (ExistsTocken)
            {//提取到了完整的cookie
                StringBuilder cook = new StringBuilder();
                cook.AppendLine(CookieVisitor.OutputCookie(CookieVisitor.CookieDict).ToString());
                cook.ToString().WriteLog(ELogType.SessionOrCookieLog, true);
                //CookieContainer
                GetCookieResponse(CookieVisitor.CookieDict);
            }
            if (_requestHeandler != null)
            {
                _requestHeandler.OnResourceLoadComplete(browserControl, browser, frame, request, response, status, receivedContentLength);
            }

            if (SystemConfig.DownloadResource)
            {
                DownloadService.DownloadResource(extension, responseDictionary, request, response);
            }
            return;
        }
Example #13
0
 public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     if (request.Url.Contains("future/refreshFutureFulLPub.do"))
     {
         var    filter = FilterManager.GetFileter(request.Identifier.ToString()) as FuturesResponseFilter;
         string str    = System.Text.Encoding.Default.GetString(filter.dataAll.ToArray());
         filter_NotifyOrderData(str);
         //filter.NotifyData(filter.dataAll.ToArray());
     }
 }
Example #14
0
        //
        // Summary:
        //     Called on the CEF IO thread when a resource load has completed. This method will
        //     be called for all requests, including requests that are aborted due to CEF shutdown
        //     or destruction of the associated browser. In cases where the associated browser
        //     is destroyed this callback may arrive after the CefSharp.ILifeSpanHandler.OnBeforeClose(CefSharp.IWebBrowser,CefSharp.IBrowser)
        //     callback for that browser. The CefSharp.IFrame.IsValid method can be used to
        //     test for this situation, and care should be taken not to call browser or frame
        //     methods that modify state (like LoadURL, SendProcessMessage, etc.) if the frame
        //     is invalid.
        //
        // Parameters:
        //   chromiumWebBrowser:
        //     The ChromiumWebBrowser control
        //
        //   browser:
        //     the browser object - may be null if originating from ServiceWorker or CefURLRequest
        //
        //   frame:
        //     the frame object - may be null if originating from ServiceWorker or CefURLRequest
        //
        //   request:
        //     the request object - cannot be modified in this callback
        //
        //   response:
        //     the response object - cannot be modified in this callback
        //
        //   status:
        //     indicates the load completion status
        //
        //   receivedContentLength:
        //     is the number of response bytes actually read.
        public void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            int code = response.StatusCode;


            // exit if frame is invalid (if the frame has closed, for example)
            if (!frame.IsValid)
            {
                return;
            }


            // if NOT FOUND
            if (code == 404)
            {
                if (!request.Url.IsURLLocalhost())
                {
                    // redirect to web archive to try and find older version
                    frame.LoadUrl("http://web.archive.org/web/*/" + request.Url);
                }
                else
                {
                    // show offline "file not found" page
                    frame.LoadUrl(MainForm.FileNotFoundURL + "?path=" + request.Url.EncodeURL());
                }
            }


            // if FILE NOT FOUND
            else if (request.Url.IsURLOfflineFile())
            {
                string path = request.Url.FileURLToPath();
                if (path.FileNotExists())
                {
                    // show offline "file not found" page
                    frame.LoadUrl(MainForm.FileNotFoundURL + "?path=" + path.EncodeURL());
                }
            }
            else
            {
                // if CANNOT CONNECT
                if (code == 444 || (code >= 500 && code <= 599))
                {
                    // show offline "cannot connect to server" page
                    frame.LoadUrl(MainForm.CannotConnectURL);
                }
            }
        }
 public ResourceLoadCompleteEventArgs(string uri, ResourceType resourceType, long contentLength, Stream content, UrlRequestStatus status)
 {
     this.Uri           = uri;
     this.ResourceType  = resourceType;
     this.ContentLength = contentLength;
     this.Content       = content;
     this.Status        = status;
 }
        public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            if (!RuntimeSettings.EnableWebDownloadMode)
            {
                return;
            }


            if (oldAddress != browserControl.Address || oldAddress == "")
            {
                oldAddress = browserControl.Address;
                Resources.Clear();
                ResponseHeaders.Clear();
                RequestHeaders.Clear();
            }

            var dict = response.ResponseHeaders.AllKeys.ToDictionary(x => x, x => response.ResponseHeaders[x]);

            ResponseHeaders.Add(new HeaderWrapper(request.Identifier, dict));

            var reqDict = request.Headers.AllKeys.ToDictionary(x => x, x => request.Headers[x]);

            RequestHeaders.Add(new HeaderWrapper(request.Identifier, reqDict));

            MemoryStreamResponseFilter filter;

            if (responseDictionary.TryGetValue(request.Identifier, out filter))
            {
                var data = filter.Data;
                Resources.Add(new RequestWrapper(request.Url, request.ResourceType, response.MimeType, data, request.Identifier));
            }
        }
 public void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     if (Config.FilterUrls.Contains(request.Url))
     {
         var    filter = FilterManager.GetFileter(request.Identifier.ToString()) as TestFilter;
         string data   = Encoding.UTF8.GetString(filter.dataAll.ToArray());
         if (data.Contains("token"))
         {
             LoginModel loginModel = JsonConvert.DeserializeObject <LoginModel>(data);
             Config.SetToken(loginModel.redirect_url);
         }
         LogService.Info($"{data}");
     }
 }
        protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            var url = new Uri(request.Url);

            if (url.Scheme == CefSharpSchemeHandlerFactory.SchemeName && memoryStream != null)
            {
                //TODO: Do something with the data here
                var data       = memoryStream.ToArray();
                var dataLength = data.Length;
                //NOTE: You may need to use a different encoding depending on the request
                var dataAsUtf8String = Encoding.UTF8.GetString(data);
            }
        }
        public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            // If I have done all of my steps I can stop
            if (Steps.Count == 0)
            {
                return;
            }

            // Exicute the first step in my list
            if (browserControl.CanExecuteJavascriptInMainFrame)
            {
                try
                {
                    browserControl.ExecuteScriptAsync(Steps.First());
                }
                catch
                {
                }
            }

            // Remove the first step
            //Steps.RemoveAt(0);
        }
 public void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     //if(_Reference != null && request.ResourceType== ResourceType.Favicon)
     //{
     //    if(SourcesList.TryGetValue(request.Url,out NetSource data))
     //    {
     //        try
     //        {
     //            var b = new BitmapImage();
     //            b.BeginInit();
     //            b.CacheOption = BitmapCacheOption.OnLoad;
     //            b.StreamSource = data.Data;
     //            b.EndInit();
     //            b.Freeze();
     //            _Reference.Icon = b;
     //            //ChrominViewModel target = null;
     //            //if (refrence != null) refrence.TryGetTarget(out target);
     //            //if (target != null) target.Icon = b;
     //        }
     //        catch (Exception er)
     //        {
     //            Console.WriteLine(" 创建faveicon 失败 : " + er.Message);
     //        }
     //    }
     //    else
     //    {
     //        Console.WriteLine(" 创建faveicon 失败 : 没有找到favicon资源");
     //    }
     //}
     //if (request.Url.LastIndexOf(".jpg") > 0) Console.WriteLine("载入完毕----->{0}", request.Url);
     return;
 }
Example #21
0
        public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            if (request.Url.Contains("https://res.wx.qq.com/zh_CN/htmledition/v2/css/base/base2e4e03.css"))
            {
                var filter = FilterManager.GetFileter(request.Identifier.ToString()) as TestImageFilter;

                filter_NotifyData(filter.dataAll.ToArray());
            }
        }
Example #22
0
 public OnResourceLoadCompleteEventArgs(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength) : base(browserControl, browser)
 {
     Frame                = frame;
     Request              = request;
     Response             = response;
     RequestStatus        = status;
     RecivedContentLength = receivedContentLength;
 }
Example #23
0
        int haveImage            = 99; //  99 macdinh;  0 la ko co anh;  1 la co anh
        // get html face


        public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            if (request.Method == "POST" && request.Url.Contains("facebook.com/webgraphql"))
            {
                content   = classGetDataFromFB.get_content(request);
                haveImage = classGetDataFromFB.HaveImage(request);
            }

            if (request.Method == "POST" && request.Url.Contains("upload.facebook.com/ajax/react_composer/attachments"))
            {
                path_image = classGetDataFromFB.get_path_image(request);
            }

            if (content != "" && haveImage != 99)
            {
                class_Post2Xenz.post_xenzu(content, path_image, Properties.Settings.Default.UserXen, Properties.Settings.Default.PassXen);
                content    = "";
                path_image = "";
                haveImage  = 99;
            }

            //    https://stackoverflow.com/questions/42536262/how-to-use-image-from-embedded-resource-with-cefsharp
        }
Example #24
0
 public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     // You can also check the request URL here
 }
 public void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
 }
Example #26
0
        public override void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            var url = new Uri(request.Url);

            if (url.Scheme == CefSharpSchemeHandlerFactory.SchemeName)
            {
                MemoryStreamResponseFilter filter;
                if (responseDictionary.TryGetValue(request.Identifier, out filter))
                {
                    //TODO: Do something with the data here
                    var data       = filter.Data;
                    var dataLength = filter.Data.Length;
                    //NOTE: You may need to use a different encoding depending on the request
                    var dataAsUtf8String = Encoding.UTF8.GetString(data);
                }
            }
        }
 protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
     logic.OnResourceLoadComplete(request);
 }
Example #28
0
 void IRequestHandler.OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame,
                                             IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
 {
 }
        protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            MemoryStreamResponseFilter filter;

            // get filter back from dictionary
            if (responseDictionary.TryGetValue(request.Identifier, out filter))
            {
                // PROBLEM: FILTER.DISPOSE HAS ALREADY BEEN CALLED AND DATA CANT BE RETRIEVED
                Console.WriteLine($"RequestID {request.Identifier} {this.GetType().Name}->{MethodBase.GetCurrentMethod().Name}: IFilter.isDisposed: {filter.isDisposed}");
            }
        }
 public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request,
     IResponse response, UrlRequestStatus status, long receivedContentLength) {
 }
Example #31
0
        protected override void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
        {
            try
            {
                Uri.TryCreate(request.Url, UriKind.Absolute, out var url);
                var extension = url?.ToString()?.ToLower();

                Debug.WriteLine($@"URL加载完成:{request.Url}");

                Debug.WriteLine($@"URL加载完成#2:{request.Headers}");

                MemoryStreamResponseFilter filter;
                if (responseDictionary.TryGetValue(request.Identifier, out filter))
                {
                    Debug.WriteLine("------------------------------------------------------------------------");

                    Debug.WriteLine(extension);
                    string postData = "";
                    if (request.PostData?.Elements?.Count > 0)
                    {
                        foreach (var item in request.PostData.Elements)
                        {
                            Debug.WriteLine(Encoding.UTF8.GetString(item.Bytes));
                            postData += Encoding.UTF8.GetString(item.Bytes);
                        }
                    }

                    Debug.WriteLine("responseDictionary.Count:" + responseDictionary.Count);
                    var data             = filter.Data;
                    var dataLength       = filter.Data.Length;
                    var dataAsUtf8String = Encoding.UTF8.GetString(data);
                    Debug.WriteLine(dataAsUtf8String);

                    //数据到达
                    HttpPacketHookManager.PacketRoute(url.PathAndQuery.Replace("/", "_"), dataAsUtf8String, postData, "", "");
                }
            }
            catch (System.Exception ex)
            {
            }
            finally
            {
                if (responseDictionary.ContainsKey(request.Identifier))
                {
                    responseDictionary.Remove(request.Identifier); // 释放
                    Debug.WriteLine($"数据包缓存量:{responseDictionary.Count}");
                }

                base.OnResourceLoadComplete(browserControl, browser, frame, request, response, status, receivedContentLength);
            }
        }