ProxyManager มีอาร์กิวเมนต์ proxy_headers แยกต่างหากสำหรับเฮดเดอร์ที่ส่งไปยังตัวกลาง สำหรับพร็อกซีที่รับ Basic authentication:

import urllib3

proxy_headers = urllib3.make_headers(
    proxy_basic_auth=f'{proxy_user}:{proxy_password}'
)
with urllib3.ProxyManager(
    'http://proxy.example:8080',
    proxy_headers=proxy_headers,
    timeout=urllib3.Timeout(connect=5, read=10),
) as http:
    response = http.request('GET', 'https://service.example/data')
    print(response.status)

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

อาร์กิวเมนต์ headers ตามปกติอธิบายเฮดเดอร์คำขอปลายทาง proxy authentication นี้เป็นของผู้รับอีกราย การใส่บัญชีของพร็อกซีไว้ที่นั่นไม่เท่ากับการกำหนดค่าการแลกเปลี่ยน CONNECT ก่อนหน้านี้

make_headers สร้างค่าของเฮดเดอร์ Basic โดยไม่เจรจา NTLM ไม่เลือกสคีมาที่รองรับโดยอัตโนมัติ และไม่พิสูจน์ว่าพร็อกซียอมรับบัญชีนั้น

พร็อกซีที่มี TLS listener จะเพิ่ม proxy TLS context แยกต่างหาก ปลายทาง http:// ข้างต้นจงใจอธิบาย HTTP listener ธรรมดาที่พาปลายทาง HTTPS ผ่านอุโมงค์

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