Как я могу изменить строку пользовательского агента и прокси-сервер моего браузера CefSharp?

Я уже знаю, как установить стартовый пользовательский агент и прокси для моего браузера CefSharp. Но я не знаю, как изменить пользовательский агент и прокси моего браузера во время работы программы.

Как изменить строку пользовательского агента браузера CefSharp на текстовое содержимое UserAgentStringTextBox всякий раз, когда я нажимаю кнопку LoadUserAgentStringButton?

Как изменить прокси-сервер моего браузера CefSharp на текстовое содержимое ProxyTextBox всякий раз, когда я нажимаю кнопку LoadProxyButton?

Я пробовал следующий код, но он ничего не сделал:

using CefSharp;
using CefSharp.WinForms;
using System.Windows.Forms;

namespace Proxy
{
    public partial class ProxyForm : Form
    {
        private ChromiumWebBrowser browser;
        private CefSettings settings;

        public ProxyForm()
        {
            InitializeComponent();
            InitializeWebBrowser();
        }

        private void InitializeWebBrowser()
        {
            settings = new CefSettings();

            settings.CefCommandLineArgs.Add("proxy-server", "111.47.13.3:80");
            settings.UserAgent = "Hello!";

            Cef.Initialize(settings);

            browser = new ChromiumWebBrowser(string.Empty) { Dock = DockStyle.Fill };

            Controls.Add(browser);
        }

        private void LoadProxyButton_Click(object sender, System.EventArgs e)
        {
            settings.CefCommandLineArgs.Remove("proxy-server");
            settings.CefCommandLineArgs.Add("proxy-server", ProxyTextBox.Text);
        }

        private void LoadUserAgentStringButton_Click(object sender, System.EventArgs e)
        {
            settings.UserAgent = UserAgentStringTextBox.Text;
        }

        private void LoadWebsiteButton_Click(object sender, System.EventArgs e)
        {
            browser.Load(WebsiteTextBox.Text);
        }
    }
}

На следующих двух рисунках показано, что происходит, когда я загружаю веб-сайт whatsmyuseragent.com БЕЗ попытки изменить строку пользовательского агента по умолчанию (Привет!) и прокси (111.47.13.3:80).

Следующие 2 изображения показывают, что происходит, когда я загружаю веб-сайт whatsmyuseragent.com С попыткой изменить строку пользовательского агента по умолчанию (Привет!) и прокси (111.47.13.3:80) ---- -> в строку агента пользователя "Эй!" и прокси "213.85.92.10:80".

Что, как видите, не увенчалось успехом.

Спасибо, что нашли время прочитать мой вопрос!


person Owen    schedule 05.02.2016    source источник
comment
Базовое предположение о том, что вы можете изменить значения CefSettings после вызова Cef.Initialize, неверно. Информацию о настройке настройки прокси. Нет простого способа изменить UserAgent после вызова Initialize. Вы можете реализовать IRequestHandler.OnBeforeResourceLoad и изменить соответствующий заголовок. Найдите проект GitHub, должно быть несколько примеров в предыдущих выпусках. У меня нет времени, чтобы дать подробный ответ в данный момент. если вам нужна дополнительная помощь, лучше всего спросить на канале CefSharp Gitter.   -  person amaitland    schedule 08.02.2016
comment
Ответ на аналогичный вопрос можно найти здесь http://stackoverflow.com/questions/36095566/cefsharp-3-set-proxy-at-runtime/   -  person bobah75    schedule 22.04.2016