urllib3 ProxyManager: proxy_headers ਵਿੱਚ Basic ਪ੍ਰਮਾਣ ਭੇਜੋ
ProxyManager.proxy_headers ਰਾਹੀਂ Basic ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣ ਦਿਓ ਤਾਂ ਜੋ ਉਹ HTTPS CONNECT ਦੌਰਾਨ ਉਪਲਬਧ ਰਹਿਣ ਅਤੇ ਮੰਜ਼ਿਲ ਹੈਡਰ ਨਾ ਬਣਨ।
ProxyManager ਕੋਲ ਵਿਚੋਲੇ ਨੂੰ ਭੇਜੇ ਜਾਂਦੇ ਹੈਡਰਾਂ ਲਈ ਵੱਖਰਾ proxy_headers ਆਰਗਿਊਮੈਂਟ ਹੈ। Basic ਪ੍ਰਮਾਣਨ ਸਵੀਕਾਰ ਕਰਨ ਵਾਲੇ ਪ੍ਰੌਕਸੀ ਲਈ:
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)
ਸਾਧਾਰਨ HTTP ਮੰਜ਼ਿਲ ਲਈ ਇਹ ਹੈਡਰ ਅੱਗੇ ਭੇਜੀ ਬੇਨਤੀ ਨਾਲ ਪ੍ਰੌਕਸੀ ਤੱਕ ਜਾਂਦੇ ਹਨ। CONNECT ਵਾਲੀ HTTPS ਮੰਜ਼ਿਲ ਲਈ ਇਹ ਟਨਲ ਸੈੱਟਅੱਪ ਦਾ ਹਿੱਸਾ ਹਨ, ਹਰ ਇਨਕ੍ਰਿਪਟਡ ਵੈੱਬਸਾਈਟ ਬੇਨਤੀ ਦਾ ਨਹੀਂ।
ਆਮ headers ਆਰਗਿਊਮੈਂਟ ਮੰਜ਼ਿਲ ਬੇਨਤੀ ਦੇ ਹੈਡਰ ਦੱਸਦਾ ਹੈ। ਇਹ ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣਨ ਕਿਸੇ ਹੋਰ ਪ੍ਰਾਪਤਕਰਤਾ ਦਾ ਹੈ। ਉੱਥੇ ਪ੍ਰੌਕਸੀ ਦਾ ਖਾਤਾ ਰੱਖਣਾ ਪਹਿਲਾਂ ਦੇ CONNECT ਆਦਾਨ-ਪ੍ਰਦਾਨ ਨੂੰ ਸੰਰਚਿਤ ਕਰਨ ਦੇ ਬਰਾਬਰ ਨਹੀਂ।
make_headers Basic ਹੈਡਰ ਦਾ ਮੁੱਲ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ NTLM ਉੱਤੇ ਗੱਲਬਾਤ ਨਹੀਂ ਕਰਦਾ, ਸਮਰਥਿਤ ਸਕੀਮ ਆਪਣੇ ਆਪ ਨਹੀਂ ਚੁਣਦਾ ਅਤੇ ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਪ੍ਰੌਕਸੀ ਉਹ ਖਾਤਾ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ।
TLS ਸਰੋਤਾ ਵਾਲਾ ਪ੍ਰੌਕਸੀ ਵੱਖਰਾ ਪ੍ਰੌਕਸੀ TLS ਸੰਦਰਭ ਜੋੜਦਾ ਹੈ। ਉੱਪਰਲਾ http:// ਐਂਡਪੌਇੰਟ ਜਾਣਬੁੱਝ ਕੇ ਅਜਿਹੇ ਸਾਧਾਰਨ HTTP ਸਰੋਤੇ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ ਜੋ ਟਨਲ ਰਾਹੀਂ HTTPS ਮੰਜ਼ਿਲ ਢੋਂਦਾ ਹੈ।