A Rust headless_chrome crate esetében a böngésző indítási beállítása választja ki a HTTP-közvetítőt. A lap Fetch-kezelője adja meg a fiókot, amikor a Chromium kéri:

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

A körülvevő függvény továbbadja a hibákat, a proxy_user és a proxy_password pedig String-értékek az alkalmazás meglévő fiókkonfigurációjából. A hitelesítést még azelőtt állítsa be, hogy a navigáció kiválthatja a kihívást.

Az enable_fetch második argumentuma kapcsolja be a hitelesítési eseményeket. A Chromium nem tekinti a --proxy-server beágyazott felhasználói adatait erre a hitelesítőadat-cserére.

Tartsa életben a böngészőt és a lapot a munkához. Ha saját Fetch-elfogás is telepítve van, határozza meg, ki folytatja a szüneteltetett kéréseket és ki válaszol a kihívásokra; a megoldatlan szüneteltetett kérés megakadályozhatja a navigációt.

Ez az egyszerű lap-hitelesítés a szándékolt proxy-kihívást feltételezi. A más eredetű hitelesítést tartalmazó munkafolyamathoz a kihívás kifejezett körülhatárolása kell, nem pedig a közvetítő fiókjának újrafelhasználása minden kiszolgálóhoz. A Chromium SOCKS5-ös felhasználónév- és jelszókorlátja szintén elkülönül ettől a HTTP-hitelesítési úttól.

Kapcsolódó cikkek