Python urllib: dilysu sylfaenol y proxy ar gyfer ceisiadau HTTP
Adeiladwch opener urllib penodol ar gyfer her Basic oddi wrth broxy HTTP, a gwahaniaethu'r cyfnewid HTTP cyffredin hwn oddi wrth ddilysu HTTPS CONNECT.
Ar gyfer her Basic o broxy HTTP, defnyddiwch ProxyBasicAuthHandler. Mae'r enghraifft HTTP gyffredin hon yn cadw'r llwybr a'r cyfrif mewn un 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)Defnyddiwch y pwynt terfyn go iawn a'r cyfrif a roddwyd gan y gweithredwr. Mae y trafodwr yn defnyddio'r rheolwr cyfrineiriau ar gyfer her y proxy; parwch URI a realm y proxy a fwriadwyd. Mae dilysu Basic y gyrchfan yn defnyddio trafodwr gwahanol.
Mae galw'r opener yn uniongyrchol yn cadw'r gosodiad hwn yn lleol. Mae URL y cais yn parhau i fod y wefan, nid y cyfryngwr. Nid yw'r llwybr HTTP clir hwn yn amgryptio cyfnewid Basic.
Peidiwch â chasglu bod twnnel HTTPS yn cael ei gefnogi o'r enghraifft hon. Mae 407 yn ystod CONNECT yn digwydd wrth osod, cyn ymateb cyrchfan cyffredin; rhaid i'r integreiddiad a ddewiswyd drin dilysu yno. Ni all newid trafodwr mewngofnodi'r wefan drwsio'r her gynharach honno.
Mae URLau proxy sy'n cario tystlythyrau yn fformat arall a geir mewn enghreifftiau hŷn. Os cânt eu defnyddio, codwch gnoaduron URL yn gywir a chadwch yr URL sy'n cario cyfrinach allan o'r cofnodion.