Twisted ProxyAgent: احراز هویت پایه برای HTTP ساده
یک درخواست HTTP سادهٔ احراز هویتشده را با Twisted ProxyAgent و سرآیندهای درخواست با مقدار بایتی بفرستید.
ProxyAgent از طریق endpointی که به آن داده میشود متصل میشود. برای یک درخواست HTTP ساده و پراکسیای که احراز هویت پایه را میپذیرد، ورود پراکسی را روی سرآیند 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 استفاده میکند. صرفاً با تغییر طرحوارهٔ URI، مذاکرهٔ CONNECT برای HTTPS را اضافه نمیکند.