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 લોગની બહાર રાખો.

સંબંધિત લેખો