Rust headless_chrome: نیویگیشن سے پہلے HTTP پراکسی اسناد مقرر کریں
براؤزر شروع کرتے وقت HTTP پراکسی منتخب کریں اور نیویگیشن سے پہلے headless_chrome ٹیب پر Fetch توثیق فعال کریں۔
Rust headless_chrome کریٹ میں براؤزر کی اسٹارٹ سیٹنگ ایک HTTP ثالث منتخب کرتی ہے۔ ٹیب کا Fetch ہینڈلر اکاؤنٹ فراہم کرتا ہے جب Chromium اس کی درخواست کرتا ہے:
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()?;بیرونی فنکشن غلطیاں آگے بھیجتا ہے، اور proxy_user اور proxy_password ایپ کی موجودہ اکاؤنٹ ترتیب سے آنے والی String قدریں ہیں۔ نیویگیشن کے چیلنج پیدا کرنے سے پہلے توثیق مقرر کریں۔
enable_fetch کی دوسری دلیل توثیق کے واقعات فعال کرتی ہے۔ Chromium --proxy-server میں شامل صارف معلومات کو یہ اسناد کے تبادلے کے طور پر نہیں سمجھتا۔
کام کے دوران براؤزر اور ٹیب کو زندہ رکھیں۔ اگر حسب ضرورت Fetch مداخلت بھی نصب ہو، تو طے کریں کہ روکی گئی درخواستیں کون جاری رکھتا ہے اور چیلنجز کا جواب کون دیتا ہے؛ حل نہ ہونے والی روکی گئی درخواست نیویگیشن روک سکتی ہے۔
ٹیب کی یہ سادہ توثیق مقصود پراکسی چیلنج کو فرض کرتی ہے۔ غیر متعلق origin توثیق والے ورک فلو کو ہر سرور کے لیے ثالثی اکاؤنٹ دوبارہ استعمال کرنے کے بجائے چیلنج کا واضح دائرہ مقرر کرنا چاہیے۔ Chromium کی SOCKS5 صارف نام اور پاس ورڈ کی حد بھی اس HTTP توثیق کے راستے سے الگ ہے۔