HTTP പ്രോക്സിയിൽ നിന്നുള്ള Basic വെല്ലുവിളിക്ക് ProxyBasicAuthHandler ഉപയോഗിക്കുക. ഈ സാധാരണ HTTP ഉദാഹരണം പാതയും അക്കൗണ്ടും ഒരേ opener-ൽ സൂക്ഷിക്കുന്നു:

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)

യഥാർത്ഥ എൻഡ്പോയിന്റും ഓപ്പറേറ്റർ നൽകുന്ന അക്കൗണ്ടും ഉപയോഗിക്കുക. ഈ ഹാൻഡ്ലർ പ്രോക്സിയുടെ വെല്ലുവിളിക്ക് പാസ്വേഡ് മാനേജർ ഉപയോഗിക്കുന്നു; ഉദ്ദേശിച്ച പ്രോക്സി URI-യും realm-ഉം പൊരുത്തപ്പെടുത്തുക. ലക്ഷ്യത്തിലെ Basic പ്രമാണീകരണം മറ്റൊരു ഹാൻഡ്ലർ ഉപയോഗിക്കുന്നു.

opener നേരിട്ട് വിളിക്കുന്നത് ഈ ക്രമീകരണം പ്രാദേശികമായി നിർത്തുന്നു. അഭ്യർത്ഥനയുടെ URL ഇടനിലക്കാരനല്ല, വെബ്സൈറ്റ് തന്നെ തുടരുന്നു. ഈ വ്യക്തമായ HTTP പാത Basic കൈമാറ്റം എൻക്രിപ്റ്റ് ചെയ്യുന്നില്ല.

ഈ ഉദാഹരണത്തിൽ നിന്ന് HTTPS ടണൽ പിന്തുണ അനുമാനിക്കരുത്. CONNECT സമയത്ത് 407 ക്രമീകരണത്തിൽ, സാധാരണ ലക്ഷ്യ പ്രതികരണത്തിന് മുമ്പ് സംഭവിക്കുന്നു; തിരഞ്ഞെടുത്ത സംയോജനം അവിടെ പ്രമാണീകരണം കൈകാര്യം ചെയ്യണം. വെബ്സൈറ്റിന്റെ ലോഗിൻ ഹാൻഡ്ലർ മാറ്റുന്നത് ആ മുൻ വെല്ലുവിളി പരിഹരിക്കാൻ കഴിയില്ല.

ക്രെഡൻഷ്യലുകൾ വഹിക്കുന്ന പ്രോക്സി URL-കൾ പഴയ ഉദാഹരണങ്ങളിൽ കാണുന്ന മറ്റൊരു ഫോർമാറ്റാണ്. ഉപയോഗിക്കുകയാണെങ്കിൽ URL വിഭജനങ്ങൾ ശരിയായി എൻകോഡ് ചെയ്യുക, ഉണ്ടാകുന്ന രഹസ്യ URL ലോഗുകൾക്ക് പുറത്ത് നിർത്തുക.

അനുബന്ധ ലേഖനങ്ങൾ