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; } } }
|