Twisted ProxyAgent: المصادقة الأساسية لطلبات HTTP العادية
أرسل طلب HTTP عاديًا موثّقًا عبر Twisted ProxyAgent باستخدام ترويسات طلب بقيم بايتية.
يتصل ProxyAgent عبر نقطة النهاية المزوّدة له. بالنسبة لطلب 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 الناتج كائن استجابة. استلام ذلك الكائن لا يجمع جسم الاستجابة؛ اقرأه عبر واجهة قراءة الجسم الموثّقة وتعامل مع الأخطاء غير المتزامنة. يحدد مهلة نقطة النهاية إنشاء الاتصال فقط، لا العمر الكامل للاستجابة.
يستخدم المثال مقصد HTTP عمدًا. وهو لا يضيف تفاوض CONNECT من أجل HTTPS بمجرد تغيير مخطط URI.