Proxy goiburuak Requests-en HTTPAdapter.proxy_headers-ekin ezartzea
Zabaldu HTTPAdapter.proxy_headers proxyak definitutako eremu baterako, Requests-en lehendik dagoen proxy autentifikazio goiburuaren sorrera mantenduz.
Proxy operadoreak definitutako goiburu baterako, Requests-ek HTTPAdapter.proxy_headers eskaintzen du gainidazteko puntu gisa:
from urllib.parse import urlsplit
import requests
from requests.adapters import HTTPAdapter
class TaggedProxy(HTTPAdapter):
def proxy_headers(self, proxy):
headers = super().proxy_headers(proxy)
endpoint = urlsplit(proxy)
if (endpoint.scheme == 'http'
and endpoint.hostname == 'proxy.example'
and endpoint.port == 8080):
headers['X-Proxy-Account'] = 'department-a'
return headers
with requests.Session() as session:
adapter = TaggedProxy()
session.mount('http://', adapter)
session.mount('https://', adapter)
response = session.get(
'https://service.example/data',
proxies={'https': 'http://proxy.example:8080'},
timeout=15,
)
X-Proxy-Account proxy jakin honek ulertzen duen eremu baten adibidea da, ez da bitartekari ororen aurrean autentifikatzeko modu estandarra.
Hasi super().proxy_headers(proxy)-rekin. Requests-ek metodo hori erabiltzen du Proxy-Authorization sortzeko URLak Basic kontua ematen duenean. Emaitza osoa ordezteak portaera hori gal dezake.
Adaptadoreak balio horiek urllib3-ren ProxyManagerera pasatzen ditu. HTTPS tunel batean CONNECT-ekin batera doaz. Eskaera goiburuen ohiko mapaketak helmugarako geroagoko eskaera deskribatzen du.
Proxy kudeatzaileak proxy URLaren arabera cachean gordetzen dira. Ez hartu kako hau eskaera bakoitzean aldatu behar den balio baterako negozio eskaerako cache gabeko callback gisa. Aukeratu garraioaren jabetza horren arabera kontu marka aldatzen denean.
HTTP birbidalketa arruntean, proxy eremuek oraindik bitartekariak aurreikusitako kontsumo politikaren beharra dute. Goiburua bezeroaren APIan proxy-berezia izateak ez du isilpekotasunik bermatzen proxyak aurrera birbidaltzen badu.