🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / CefSharp ekranda bir tuşa bastığında request header da giden parametreleri verir

1-) C# RMOS - CefSharp ekranda bir tuşa bastığında request header da giden parametreleri verir

 

 

1. Form1.cs

 

CustomRequestHandler requestVisitor;

 

private void Form2_Load(object sender, EventArgs e)

{

    Cef.Initialize(new CefSettings());

    browser = new ChromiumWebBrowser("https://portal.tuipartners.com/tpp-destimo");

    panel1.Controls.Add(browser);

    browser.Dock = DockStyle.Fill;

    browser.LoadingStateChanged += BrowserLoadingStateChanged;

 

 

    //panel1.Size = new System.Drawing.Size(0,0);

 

    requestVisitor = new CustomRequestHandler();

    browser.RequestHandler = requestVisitor;

 

    Task.Delay(3000).ContinueWith(_ => FillAndSubmitForm());

 

    

 

}

 

  private void button2_Click(object sender, EventArgs e)

  {

      NameValueCollection headers = requestVisitor.GetRequestHeaders();

 

      // Elde ettiğiniz başlık değerlerini kullanabilirsiniz

      foreach (string key in headers.AllKeys)

      {

          string value = headers[key];

          Console.WriteLine($"{key}: {value}");

      }

  }

 

 

 

2. CustomRequestHandler.cs

using CefSharp;

using System;

using System.Collections.Specialized;

using System.Security.Cryptography.X509Certificates;

namespace WindowsFormsApp3

{

    public class CustomRequestHandler : IRequestHandler

    {

        private NameValueCollection requestHeaders = new NameValueCollection();

        public bool GetAuthCredentials(IWebBrowser chromiumWebBrowser, IBrowser browser, string originUrl, bool isProxy, string host, int port, string realm, string scheme, IAuthCallback callback)

        {

            return false;

        }

        public IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)

        {

            var headers = request.Headers;

            foreach (var key in headers.AllKeys)

            {

                var value = headers[key];

                Console.WriteLine($"{key}: {value}");

                requestHeaders[key] = value;

            }

            return null;

        }

        public NameValueCollection GetRequestHeaders()

        {

            return requestHeaders;

        }

        public bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isRedirect)

        {

            return false;

        }

        public bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool userGesture, bool isRedirect)

        {

            return false;

        }

        public bool OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)

        {

            //// Burada isteğin başlık (header) değerlerini alabilirsiniz

            //var headers = request.Headers;

            //foreach (var key in headers.AllKeys)

            //{

            //    var value = headers[key];

            //    Console.WriteLine($"{key}: {value}");

            //}

            return false;

        }

        public bool OnCertificateError(IWebBrowser chromiumWebBrowser, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback)

        {

            return false;

        }

        public void OnDocumentAvailableInMainFrame(IWebBrowser chromiumWebBrowser, IBrowser browser)

        {

            return ;

        }

        public bool OnOpenUrlFromTab(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, string targetUrl, WindowOpenDisposition targetDisposition, bool userGesture)

        {

            return false;

        }

        public void OnRenderProcessTerminated(IWebBrowser chromiumWebBrowser, IBrowser browser, CefTerminationStatus status)

        {

            return ;

        }

        public void OnRenderViewReady(IWebBrowser chromiumWebBrowser, IBrowser browser)

        {

            return ;

        }

        public bool OnSelectClientCertificate(IWebBrowser chromiumWebBrowser, IBrowser browser, bool isProxy, string host, int port, X509Certificate2Collection certificates, ISelectClientCertificateCallback callback)

        {

            return false;

        }

    }

}

 

 

 2023 Aralık 30 Cumartesi
 267