예제 #1
0
        protected override CefReturnValue OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser,
                                                               IFrame frame, IRequest request, IRequestCallback callback)
        {
            var manager     = UrlRequestHeaderManager.GetInstance();
            var userHeaders = manager.Headers;

            if (userHeaders == null)
            {
                return(CefReturnValue.Continue);
            }
            if (userHeaders.Count == 0)
            {
                return(CefReturnValue.Continue);
            }
            try {
                var uri           = new Uri(request.Url);
                var host          = uri.Host;
                var domainHeaders = userHeaders[host];
                var headers       = request.Headers;
                foreach (var domainHeader in domainHeaders)
                {
                    headers[domainHeader.Key] = domainHeader.Value;
                }

                request.Headers = headers;
                if (!manager.PersistRequestHeaders)
                {
                    manager.Remove(host);
                }
            }
            catch {
                // ignored
            }
            return(CefReturnValue.Continue);
        }
예제 #2
0
        protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser,
                                                                             IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator,
                                                                             ref bool disableDefaultHandling)
        {
            var manager     = UrlRequestHeaderManager.GetInstance();
            var userHeaders = manager.Headers;

            if (userHeaders == null)
            {
                return(null);
            }
            if (userHeaders.Count == 0)
            {
                return(null);
            }
            try {
                var uri  = new Uri(request.Url);
                var host = uri.Host;
                return(!userHeaders.ContainsKey(host) ? null : new CefResourceRequestHandler());
            }
            catch {
                // ignored
            }

            return(null);
        }