May hiwalay na argumentong proxy_headers ang ProxyManager para sa mga header na ipinapadala sa tagapamagitan. Para sa proxy na tumatanggap ng 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)

Para sa karaniwang HTTP destination, sumasama ang mga header na ito sa ipinadalang request patungo sa proxy. Para sa HTTPS destination na gumagamit ng CONNECT, kabilang ang mga ito sa pag-setup ng tunnel, hindi sa bawat naka-encrypt na request sa website.

Ang karaniwang argumentong headers ay naglalarawan ng destination request headers. Ang proxy authentication na ito ay para sa ibang tatanggap. Ang paglalagay ng account ng proxy doon ay hindi katumbas ng pag-configure sa naunang CONNECT exchange.

Binubuo ng make_headers ang halaga ng Basic header. Hindi ito nakikipagnegosasyon sa NTLM, hindi awtomatikong pumipili ng sinusuportahang scheme, at hindi pinapatunayan na tinatanggap ng proxy ang account na iyon.

Ang proxy na may TLS listener ay nagdadagdag ng hiwalay na proxy TLS context. Ang http:// endpoint sa itaas ay sadyang naglalarawan ng karaniwang HTTP listener na nagdadala ng HTTPS destination sa pamamagitan ng tunnel.

Kaugnay na mga artikulo