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-призначення. Він не додає узгодження CONNECT для HTTPS лише через зміну схеми URI.

Схожі статті