Python urllib: proxyaren oinarrizko autentifikazioa HTTP eskaeretarako
Eraiki urllib opener esplizitu bat HTTP proxy baten Basic erronkarako, eta bereizi ohiko HTTP truke hori HTTPS CONNECT autentifikaziotik.
HTTP proxy baten Basic erronkarako, erabili ProxyBasicAuthHandler. Ohiko HTTP adibide honek ibilbidea eta kontua opener bakarrean gordetzen ditu:
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)Erabili benetako muturra eta operadoreak emandako kontua. Kudeatzaileak pasahitz-kudeatzailea erabiltzen du proxyaren erronkarako; parekatu aurreikusitako proxy URIa eta realm. Helmugako Basic autentifikazioak beste kudeatzaile bat erabiltzen du.
Openerra zuzenean deitzeak konfigurazio hau tokian mantentzen du. Eskaeraren URLa webgunea izaten jarraitzen du, ez bitartekaria. HTTP bide argi honek ez du Basic trukea zifratzen.
Ez ondorioztatu adibide honetatik HTTPS tunelaren sostengua. CONNECT bitarteko 407 konfigurazioan gertatzen da, helmugaren ohiko erantzunaren aurretik; hautatutako integrazioak han kudeatu behar du autentifikazioa. Webgunearen saio-hasierako kudeatzailea aldatzeak ezin du lehenagoko erronka hori konpondu.
Kredentzialak daramatzaten proxy URLez beste formatu bat da adibide zaharretan. Erabiltzen badira, kodetu zuzen URL bereizleak eta mantendu sortutako sekretua daraman URLa erregistroetatik kanpo.