Twisted ProxyAgent: oddiy HTTP uchun Basic autentifikatsiya
Bayt qiymatli soʻrov sarlavhalari bilan Twisted ProxyAgent orqali autentifikatsiya qilingan oddiy HTTP soʻrovini yuboring.
ProxyAgent unga berilgan endpoint orqali ulanadi. Oddiy HTTP soʻrovi va Basic autentifikatsiyani qabul qiluvchi proxy uchun proxy loginini oʻsha soʻrovning Proxy-Authorization sarlavhasiga qoʻying.
import base64
from twisted.internet.endpoints import TCP4ClientEndpoint
from twisted.web.client import ProxyAgent
from twisted.web.http_headers import Headers
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
token = base64.b64encode(b'alice:REPLACE_WITH_PROXY_PASSWORD')
headers = Headers({b'Proxy-Authorization': [b'Basic ' + token]})
pending = agent.request(b'GET', b'http://example.com/', headers)Bu parcha ilovada allaqachon oʻz reactor'i bor deb hisoblaydi. Metod, URI va misolda koʻrsatilgan sarlavha maʼlumotlari baytlardan foydalanadi. Haqiqiy hisob maʼlumotlarini ilovaning hisob maʼlumotlari manbasida saqlang; oʻrin egallovchi sarlavha qanday tuzilishini koʻrsatadi xolos. Base64 — kodlash, shuning uchun maxfiylik uni tashuvchi ulanishga bogʻliq.
Qaytarilgan Deferred javob obyektini beradi. Bu obyektni olish javob tanasini toʻplamaydi; uni hujjatlashtirilgan tana oʻqish interfeysi orqali oʻqing va asinxron xatolarni boshqaring. Endpoint taymauti ulanish oʻrnatilishini cheklaydi, javobning butun umrini emas.
Misol ataylab HTTP manzilini ishlatadi. Faqat URI sxemasini oʻzgartirish bilan u HTTPS uchun CONNECT muzokaralarini qoʻshmaydi.