Rust headless_chrome: задайте учётные данные HTTP-прокси до перехода
Выберите HTTP-прокси при запуске браузера и включите аутентификацию Fetch на вкладке headless_chrome до перехода.
В Rust-крейте headless_chrome настройка запуска браузера выбирает HTTP-посредника. Обработчик Fetch вкладки предоставляет учётную запись, когда Chromium запрашивает её:
let proxy = "http://proxy.example:8080";
let options = headless_chrome::LaunchOptions::default_builder()
.proxy_server(Some(proxy))
.build()?;
let browser = headless_chrome::Browser::new(options)?;
let tab = browser.new_tab()?;
tab.enable_fetch(None, Some(true))?;
tab.authenticate(Some(proxy_user), Some(proxy_password))?;
tab.navigate_to("https://www.example.org/")?;
tab.wait_until_navigated()?;Внешняя функция передаёт ошибки, а proxy_user и proxy_password — это значения String из существующей конфигурации учётной записи приложения. Настройте аутентификацию до того, как переход вызовет запрос.
Второй аргумент enable_fetch включает события аутентификации. Chromium не рассматривает сведения о пользователе в --proxy-server как этот обмен учётными данными.
Держите браузер и вкладку живыми на время работы. Если также установлен собственный перехват Fetch, определите, кто продолжает приостановленные запросы и кто отвечает на запросы аутентификации; неразрешённый приостановленный запрос может остановить переход.
Эта простая аутентификация на вкладке рассчитана на предполагаемый запрос прокси. Рабочий процесс с аутентификацией другого origin требует явного ограничения области запроса, а не повторного использования учётной записи посредника для каждого сервера. Ограничение Chromium в SOCKS5 для имени пользователя и пароля также отделено от этого пути HTTP-аутентификации.