Twisted ProxyAgent: базавая аўтэнтыфікацыя для звычайнага HTTP
Адпраўце аўтэнтыфікаваны звычайны HTTP-запыт праз Twisted ProxyAgent з байтавымі загалоўкамі запыту.
ProxyAgent злучаецца праз endpoint, перададзены яму. Для звычайнага HTTP-запыту і proxy, які прымае базавую аўтэнтыфікацыю, змясціце лагін proxy ў загаловак Proxy-Authorization гэтага запыту.
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)Гэты фрагмент мяркуе, што ў праграмы ўжо ёсць свой reactor. Метад, URI і паказаныя ў прыкладзе даныя загалоўка выкарыстоўваюць байты. Захоўвайце сапраўдныя ўліковыя даныя ў крыніцы ўліковых даных праграмы; запаўняльнік паказвае толькі, як будуецца загаловак. Base64 — гэта кадаванне, таму канфідэнцыйнасць залежыць ад злучэння, якое яго перадае.
Вяртаны Deferred дае аб'ект адказу. Атрыманне гэтага аб'екта не збірае цела адказу; чытайце яго праз дакументаваны інтэрфейс чытання цела і апрацоўвайце асінхронныя збоі. Тайм-аўт endpoint абмяжоўвае ўстанаўленне злучэння, а не ўвесь час жыцця адказу.
Прыклад наўмысна выкарыстоўвае HTTP-прызначэнне. Ён не дадае перамовы CONNECT для HTTPS проста праз змену схемы URI.