În crate-ul Rust headless_chrome, setarea de lansare a browserului selectează un intermediar HTTP. Managerul Fetch al filei furnizează contul când Chromium îl solicită:

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()?;

Funcția exterioară propagă erorile, iar proxy_user și proxy_password sunt valori String din configurația de cont existentă a aplicației. Configurați autentificarea înainte ca navigarea să poată declanșa provocarea.

Al doilea argument al funcției enable_fetch activează evenimentele de autentificare. Chromium nu tratează informațiile de utilizator încorporate în --proxy-server drept acest schimb de acreditări.

Păstrați browserul și fila active pe durata lucrului. Dacă este instalată și o interceptare Fetch proprie, stabiliți cine continuă cererile în pauză și cine răspunde la provocări; o cerere în pauză nerezolvată poate bloca navigarea.

Această configurare simplă de autentificare în filă presupune provocarea de proxy dorită. Un flux cu autentificare pentru alt origin are nevoie de delimitarea explicită a provocării în loc să reutilizeze contul intermediarului pentru fiecare server. Nici limitarea Chromium la SOCKS5 privind utilizatorul și parola nu ține de această cale de autentificare HTTP.

Articole similare