Për një sfidë Basic nga një proxy HTTP, përdorni ProxyBasicAuthHandler. Ky shembull i zakonshëm HTTP mban rrugën dhe llogarinë në një opener të vetëm:

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)

Përdorni pikën e vërtetë fundore dhe llogarinë që jep operatori. Trajtuesi përdor menaxherin e fjalëkalimeve për sfidën e proxy-t; përputhni URI-në dhe realm-in e synuara të proxy-t. Vërtetimi Basic në destinacion përdor një trajtues tjetër.

Thirrja e opener-it drejtpërdrejt e mban këtë konfigurim lokal. URL-ja e kërkesës mbetet faqja, jo ndërmjetësi. Kjo rrugë HTTP e hapur nuk e kripton një shkëmbim Basic.

Mos nxirrni nga ky shembull mbështetje për tunel HTTPS. Një 407 gjatë CONNECT ndodh në konfigurim, përpara një përgjigjeje të zakonshme të destinacionit; integrimi i zgjedhur duhet ta trajtojë vërtetimin atje. Ndryshimi i trajtuesit të hyrjes së faqes nuk mund ta rregullojë atë sfidë të mëparshme.

URL-të e proxy-t me kredenciale janë një format tjetër që gjendet në shembuj më të vjetër. Nëse përdoren, kodoni saktë ndarësit e URL-së dhe mbajini URL-të që mbartin sekret jashtë regjistrave.

Artikuj të ngjashëm