C# cefsharp host-resolver-rules parameter does not work (skip)

104 Views Asked by At
private void startAsync()
{

    Cef.UIThreadTaskFactory.StartNew(delegate
    {

        try
        {
            // Create a new RequestContext for the new form
            RequestContext requestContext = new RequestContext();

            // Create a dictionary to store the proxy settings
            var proxySettings = new Dictionary<string, object>();
            proxySettings["mode"] = "fixed_servers";
            proxySettings["server"] = "*proxy*";
            string error;
            bool success = requestContext.SetPreference("proxy", proxySettings, out error);
            if (!success)
            {
                Console.WriteLine("Failed to set proxy preference: " + error);
            }

            success = requestContext.SetPreference("host-resolver-rules", "MAP ripe.net 127.0.0.1:8080", out error);
            if (!success)
            {
                Console.WriteLine("Failed to set host-resolver-rules preference: " + error);
            }

            // Create a new form
            Form frm = new Form();
            frm.Text = "New Form";
            frm.Width = 600;
            frm.Height = 400;

            ChromiumWebBrowser browser = new ChromiumWebBrowser();
            browser.Dock = DockStyle.Fill;

            // Assign the RequestContext to the browser
            browser.RequestContext = requestContext;

            // Load the URL in the browser
            browser.Load("http://ripe.net/");

            frm.Controls.Add(browser);
            frm.Show();
        }
        catch (Exception ex)
        {
            Console.WriteLine("An error occurred: " + ex.Message);
        }
    });


}

Proxy work. host-resolver-rules ignore. Help pls My task is to open many browsers simultaneously me in each proxy and change each time "MAP there is a random site 127.0.0.1:8080"

    CefSettings settings = new CefSettings();
    settings.CefCommandLineArgs.Add("disable-cache", "1");
    settings.CefCommandLineArgs.Add("proxy-server", "this my proxy");
    settings.CefCommandLineArgs.Add("proxy-bypass-list", "ripe.net");
    settings.CefCommandLineArgs.Add("host-resolver-rules", "MAP ripe.net 127.0.0.1:8080");
    Cef.Initialize(settings);

Everything works if you do it this way but I can only initialize once

1

There are 1 best solutions below

5
273K On

MAP ripe.net 127.0.0.1:8080 is an invalid rule for the host resolver. MAP ripe.net 127.0.0.1 - you might want this. Specify the port in a requested url.