Twisted ProxyAgent: xác thực cơ bản cho HTTP thường
Gửi một yêu cầu HTTP thường đã xác thực qua Twisted ProxyAgent với các tiêu đề yêu cầu mang giá trị byte.
ProxyAgent kết nối qua endpoint được cấp cho nó. Với một yêu cầu HTTP thường và proxy chấp nhận xác thực cơ bản, hãy đặt thông tin đăng nhập proxy vào tiêu đề Proxy-Authorization của yêu cầu đó.
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)Đoạn này giả định ứng dụng đã có reactor của riêng nó. Phương thức, URI và dữ liệu tiêu đề trong ví dụ dùng byte. Hãy giữ thông tin xác thực thật trong nguồn thông tin xác thực của ứng dụng; phần giữ chỗ chỉ cho thấy cách dựng tiêu đề. Base64 là một cách mã hóa, nên tính bảo mật phụ thuộc vào kết nối vận chuyển nó.
Deferred trả về cho một đối tượng phản hồi. Nhận đối tượng đó không thu thập phần thân phản hồi; hãy đọc nó qua giao diện đọc thân đã được tài liệu hóa và xử lý các lỗi bất đồng bộ. Thời gian chờ của endpoint giới hạn việc thiết lập kết nối, không giới hạn toàn bộ vòng đời phản hồi.
Ví dụ cố ý dùng đích HTTP. Nó không thêm thương lượng CONNECT cho HTTPS chỉ bằng cách đổi lược đồ URI.