Dalam crate Rust headless_chrome, tetapan pelancaran pelayar memilih perantara HTTP. Pengendali Fetch tab membekalkan akaun apabila Chromium memintanya:

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

Fungsi pembalut menyebarkan ralat, dan proxy_user serta proxy_password ialah nilai String daripada konfigurasi akaun sedia ada aplikasi. Sediakan pengesahan sebelum navigasi boleh mencetuskan cabaran.

Argumen kedua enable_fetch mengaktifkan peristiwa pengesahan. Chromium tidak menganggap maklumat pengguna yang tertanam dalam --proxy-server sebagai pertukaran kelayakan ini.

Kekalkan pelayar dan tab hidup sepanjang kerja. Jika pintasan Fetch tersuai juga dipasang, tentukan siapa meneruskan permintaan yang dijeda dan siapa menjawab cabaran; permintaan jeda yang tidak diselesaikan boleh menyekat navigasi.

Tetapan pengesahan tab yang ringkas ini menganggap cabaran proksi yang dimaksudkan. Aliran kerja dengan pengesahan origin tidak berkaitan memerlukan penentuan skop cabaran secara jelas dan bukan menggunakan semula akaun perantara untuk setiap pelayan. Had SOCKS5 Chromium pada nama pengguna dan kata laluan juga berasingan daripada laluan pengesahan HTTP ini.

Artikel berkaitan