天天看點

CefSharp 修改請求頭Referer

添加ChromiumWebBrowser的RequestHandler處理類:

ResourceRequestHandler: 請求前處理類

class CustomResourceRequestHandler : CefSharp.Handler.ResourceRequestHandler
{
        protected override CefReturnValue OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
        {
            //設定Referrer
            request.SetReferrer("http://xxx.xx/", ReferrerPolicy.Default);
            //可以根據不同Url請求,設定不同referer request.Url.StartsWith()
            if(request.Url.StartsWith("http://xxx.xx/")){
                request.SetReferrer("http://xxx.xx/", ReferrerPolicy.Default);
            }
        }
}      

官方已指明不能在request.Headers裡邊直接處理:

RequestHandler: 請求處理類

class CustomRequestHandler : CefSharp.Handler.RequestHandler
    {
        protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
        {
            return new CustomResourceRequestHandler();
        }
    }      

添加RequestHandler處理:

chromiumWebBrowser1.RequestHandler = new CustomRequestHandler();