Python urllib: HTTP istekleri için Basic proxy kimlik doğrulaması
Bir HTTP proxy'sinden gelen Basic meydan okuması için açık bir urllib opener oluşturun ve bu sıradan HTTP alışverişini HTTPS CONNECT kimlik doğrulamasından ayırın.
Bir HTTP proxy'sinden gelen Basic meydan okuması için ProxyBasicAuthHandler kullanın. Bu sıradan HTTP örneği rotayı ve hesabı tek bir opener içinde tutar:
import os
from urllib.request import (
ProxyHandler, ProxyBasicAuthHandler,
HTTPPasswordMgrWithDefaultRealm, build_opener,
)
proxy_url = 'http://proxy.example:8080'
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(
None, proxy_url,
os.environ['PROXY_USER'], os.environ['PROXY_PASSWORD'],
)
opener = build_opener(
ProxyHandler({'http': proxy_url}),
ProxyBasicAuthHandler(passwords),
)
with opener.open('http://example.com/', timeout=10) as response:
print(response.status)Gerçek uç noktayı ve operatörün sağladığı hesabı kullanın. İşleyici proxy'nin meydan okuması için parola yöneticisini kullanır; amaçlanan proxy URI'sini ve realm'i eşleştirin. Hedefteki Basic kimlik doğrulaması başka bir işleyici kullanır.
opener'ı doğrudan çağırmak bu kurulumu yerel tutar. İsteğin URL'si aracı değil, web sitesi olarak kalır. Bu açık HTTP rotası bir Basic alışverişini şifrelemez.
Bu örnekten HTTPS tüneli desteği çıkarmayın. CONNECT sırasında 407 kurulum aşamasında, hedefin sıradan yanıtından önce olur; seçilen entegrasyon kimlik doğrulamayı orada ele almalıdır. Sitenin oturum açma işleyicisini değiştirmek o önceki meydan okumayı düzeltemez.
Kimlik bilgisi taşıyan proxy URL'leri eski örneklerde görülen başka bir biçimdir. Kullanılırsa URL ayırıcılarını doğru kodlayın ve ortaya çıkan gizli URL'yi günlüklerin dışında tutun.