Το ProxyManager έχει ξεχωριστό όρισμα proxy_headers για κεφαλίδες που στέλνονται στον μεσολαβητή. Για proxy που δέχεται έλεγχο ταυτότητας Basic:

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, αυτές οι κεφαλίδες ταξιδεύουν με το προωθημένο αίτημα προς το proxy. Για προορισμό HTTPS μέσω CONNECT, ανήκουν στη διαμόρφωση της σήραγγας και όχι σε κάθε κρυπτογραφημένο αίτημα ιστοτόπου.

Το συνηθισμένο όρισμα headers περιγράφει κεφαλίδες αιτήματος προορισμού. Αυτός ο έλεγχος ταυτότητας proxy ανήκει σε άλλον παραλήπτη. Η τοποθέτηση του λογαριασμού του proxy εκεί δεν ισοδυναμεί με τη ρύθμιση της προηγούμενης ανταλλαγής CONNECT.

Το make_headers κατασκευάζει την τιμή της κεφαλίδας Basic. Δεν διαπραγματεύεται NTLM, δεν επιλέγει αυτόματα υποστηριζόμενο σχήμα και δεν αποδεικνύει ότι το proxy δέχεται αυτόν τον λογαριασμό.

Ένα proxy με ακροατή TLS προσθέτει ξεχωριστό περιβάλλον TLS proxy. Το παραπάνω τελικό σημείο http:// περιγράφει σκόπιμα έναν συνηθισμένο ακροατή HTTP που μεταφέρει προορισμό HTTPS μέσα από σήραγγα.

Σχετικά άρθρα