พร็อกซีของสำนักงานขอหนึ่งบัญชี เว็บไซต์ที่อยู่เบื้องหลังขออีกบัญชี Requests มีช่องทางแยกสำหรับล็อกอิน Basic สองรายการนั้น คือข้อมูลรับรองใน URL ของพร็อกซีและอาร์กิวเมนต์ auth ของคำขอ

from urllib.parse import quote
import requests

proxy_url = (
    f"http://{quote(proxy_user, safe='')}:"
    f"{quote(proxy_password, safe='')}@proxy.example:8080"
)
response = requests.get(
    "https://reports.example/private/",
    proxies={"https": proxy_url},
    auth=(site_user, site_password),
    timeout=(5, 20),
)
response.raise_for_status()

ตัวแปรบัญชีทั้งสี่มาจากการกำหนดค่าข้อมูลรับรองของแอปพลิเคชัน การเข้ารหัสชื่อผู้ใช้และรหัสผ่านของพร็อกซีแยกกัน รักษาอักขระอย่างเครื่องหมาย at ไว้โดยไม่เปลี่ยนให้เป็นตัวคั่น URL

คีย์ https ในดิกชันนารีเลือกเส้นทางนี้สำหรับปลายทาง HTTPS ค่าของมันยังขึ้นต้นด้วย http:// เพราะนั่นคือโปรโตคอลที่ใช้เข้าถึงพร็อกซีตัวอย่างนี้

สำหรับคำขอ HTTPS นั้น ล็อกอินของพร็อกซีเป็นการแลกเปลี่ยน CONNECT ส่วนล็อกอินของเว็บไซต์เป็นของคำขอถัดไปผ่านอุโมงค์ที่สร้างขึ้น การปล่อยให้อะแดปเตอร์ดึงการอนุญาตพร็อกซีจาก URL ของตัวเองทำให้มันอยู่ที่ฮอปที่เกี่ยวข้อง สำหรับกรณี Basic นี้ไม่ต้องใช้คลาสการพิสูจน์ตัวตนแบบรวม

407 บ่งชี้คำท้าของตัวกลาง 401 จากเว็บไซต์บ่งชี้คำท้าของปลายทาง ใช้การตอบสนองนั้นตัดสินว่าบัญชีใดในสองบัญชีที่กำหนดค่าไว้ต้องได้รับการดูแล

บทความที่เกี่ยวข้อง