Rust headless_chrome: configura las credenciales del proxy HTTP antes de navegar
Elige el proxy HTTP al iniciar el navegador y habilita la autenticación Fetch en la pestaña de headless_chrome antes de navegar.
En el crate Rust headless_chrome, la configuración de inicio del navegador selecciona un intermediario HTTP. El controlador Fetch de la pestaña entrega la cuenta cuando Chromium la solicita:
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()?;La función contenedora propaga los errores, y proxy_user y proxy_password son valores String que provienen de la configuración de cuenta existente de la aplicación. Configura la autenticación antes de que la navegación pueda desencadenar el desafío.
El segundo argumento de enable_fetch habilita los eventos de autenticación. Chromium no trata la información de usuario incrustada en --proxy-server como este intercambio de credenciales.
Mantén vivos el navegador y la pestaña durante la tarea. Si además hay instalada una intercepción Fetch propia, define quién continúa las solicitudes en pausa y quién responde a los desafíos; una solicitud en pausa sin resolver puede bloquear la navegación.
Esta configuración sencilla de autenticación en la pestaña supone el desafío de proxy previsto. Un flujo con autenticación de otro origen necesita delimitar el desafío de forma explícita en lugar de reutilizar la cuenta del intermediario para cada servidor. La limitación de Chromium en SOCKS5 para usuario y contraseña también es independiente de esta ruta de autenticación HTTP.