Python urllib: HTTP хүсэлтүүдийн Basic прокси баталгаажуулалт
HTTP проксийн Basic сорилтын хувьд тодорхой urllib opener байгуулж, энэ энгийн HTTP солилцоог HTTPS CONNECT баталгаажуулалтаас ялгаарай.
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-ийг бүртгэлээс гадуур байлгана.