W crate Rust headless_chrome ustawienie uruchamiania przeglądarki wybiera pośrednika HTTP. Procedura Fetch karty dostarcza konto, gdy Chromium o nie poprosi:

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

Otaczająca funkcja propaguje błędy, a proxy_user i proxy_password to wartości String z istniejącej konfiguracji konta w aplikacji. Skonfiguruj uwierzytelnianie, zanim nawigacja wywoła wyzwanie.

Drugi argument enable_fetch włącza zdarzenia uwierzytelniania. Chromium nie traktuje danych użytkownika osadzonych w --proxy-server jako tej wymiany danych logowania.

Utrzymuj przeglądarkę i kartę przy życiu przez czas pracy. Jeśli zainstalowane jest też własne przechwytywanie Fetch, określ, kto wznawia wstrzymane żądania i kto odpowiada na wyzwania; nierozwiązane wstrzymane żądanie może zablokować nawigację.

To proste uwierzytelnianie na karcie zakłada zamierzone wyzwanie proxy. Przepływ z uwierzytelnianiem niepowiązanego origin wymaga jawnego ograniczenia wyzwania, a nie ponownego używania konta pośrednika dla każdego serwera. Ograniczenie Chromium w SOCKS5 dotyczące nazwy użytkownika i hasła również jest oddzielone od tej ścieżki uwierzytelniania HTTP.

Powiązane artykuły