I Rust-craten headless_chrome velger oppstartsinnstillingen til nettleseren en HTTP-mellommann. Fetch-behandleren på fanen leverer kontoen når Chromium ber om den:

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

Den omsluttende funksjonen videresender feil, og proxy_user og proxy_password er String-verdier fra applikasjonens eksisterende kontokonfigurasjon. Sett opp autentiseringen før navigeringen kan utløse utfordringen.

enable_fetch sitt andre argument aktiverer autentiseringshendelser. Chromium behandler ikke brukerinformasjon innebygd i --proxy-server som denne utvekslingen av legitimasjon.

Hold nettleseren og fanen i live for arbeidet. Hvis egen Fetch-avskjæring også er installert, må du definere hvem som fortsetter pausede forespørsler og hvem som svarer på utfordringer; en uavklart pauset forespørsel kan stanse navigeringen.

Dette enkle oppsettet for autentisering på fanen forutsetter den tiltenkte proxy-utfordringen. En arbeidsflyt med autentisering fra en uvedkommende origin trenger eksplisitt avgrensning av utfordringen i stedet for å gjenbruke mellommannens konto for hver server. Chromiums SOCKS5-begrensning på brukernavn og passord er også atskilt fra denne HTTP-autentiseringsveien.

Relaterte artikler