Rust headless_chrome : définir les identifiants du proxy HTTP avant la navigation
Choisissez le proxy HTTP au lancement du navigateur et activez l'authentification Fetch dans l'onglet headless_chrome avant la navigation.
Avec la crate Rust headless_chrome, le réglage de lancement du navigateur sélectionne un intermédiaire HTTP. Le gestionnaire Fetch de l'onglet fournit le compte lorsque Chromium le demande :
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 fonction englobante propage les erreurs, et proxy_user et proxy_password sont des valeurs String issues de la configuration de compte existante de l'application. Mettez l'authentification en place avant que la navigation puisse déclencher le défi.
Le deuxième argument d'enable_fetch active les événements d'authentification. Chromium ne considère pas les informations utilisateur intégrées à --proxy-server comme cet échange d'identifiants.
Gardez le navigateur et l'onglet actifs pendant le travail. Si une interception Fetch personnalisée est également installée, définissez qui poursuit les requêtes en pause et qui répond aux défis ; une requête en pause non résolue peut bloquer la navigation.
Cette configuration d'authentification simple dans l'onglet suppose le défi proxy prévu. Un flux avec authentification d'une autre origine nécessite un cadrage explicite du défi plutôt que de réutiliser le compte de l'intermédiaire pour chaque serveur. La limitation de Chromium sur SOCKS5 pour le nom d'utilisateur et le mot de passe est également distincte de cette voie d'authentification HTTP.