Proksi pejabat meminta satu akaun. Laman web di belakangnya meminta akaun lain. Requests mempunyai input berasingan untuk kedua-dua log masuk Basic itu: kelayakan dalam URL proksi dan argumen auth permintaan.

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

Keempat-empat pemboleh ubah akaun datang daripada konfigurasi kelayakan aplikasi. Mengekod nama pengguna dan kata laluan proksi secara berasingan mengekalkan aksara seperti tanda at tanpa menukarnya menjadi pemisah URL.

Kunci https dalam kamus memilih laluan ini untuk destinasi HTTPS. Nilainya masih bermula dengan http:// kerana itulah protokol yang digunakan untuk mencapai proksi contoh ini.

Dalam permintaan HTTPS itu, log masuk proksi tergolong dalam pertukaran CONNECT. Log masuk laman tergolong dalam permintaan kemudian melalui terowong yang telah dibina. Membiarkan penyesuai memperoleh kebenaran proksi daripada URLnya sendiri mengekalkannya pada hop yang berkaitan; untuk kes Basic ini tiada kelas pengesahan gabungan diperlukan.

407 menandakan cabaran perantara. 401 daripada laman menandakan cabaran destinasi. Gunakan respons itu untuk memutuskan akaun mana antara dua akaun yang dikonfigurasikan memerlukan perhatian.

Artikel berkaitan