Al crate Rust headless_chrome, la configuració d'inici del navegador tria un intermediari HTTP. El gestor Fetch de la pestanya proporciona el compte quan Chromium el demana:

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ó que l'envolta propaga els errors, i proxy_user i proxy_password són valors String que provenen de la configuració de compte existent de l'aplicació. Configureu l'autenticació abans que la navegació pugui desencadenar el repte.

El segon argument d'enable_fetch activa els esdeveniments d'autenticació. Chromium no tracta la informació d'usuari incrustada a --proxy-server com aquest intercanvi de credencials.

Manteniu el navegador i la pestanya vius durant la feina. Si també hi ha instal·lada una intercepció Fetch pròpia, definiu qui continua les peticions pausades i qui respon els reptes; una petició pausada sense resoldre pot bloquejar la navegació.

Aquesta configuració simple d'autenticació de la pestanya pressuposa el repte del proxy previst. Un flux amb autenticació d'un origen no relacionat necessita una delimitació explícita del repte en lloc de reutilitzar el compte de l'intermediari per a cada servidor. La limitació de Chromium a SOCKS5 per a usuari i contrasenya també és separada d'aquest camí d'autenticació HTTP.

Articles relacionats