Twisted ProxyAgent: uwierzytelnianie podstawowe dla zwykłego HTTP
Wyślij uwierzytelnione zwykłe żądanie HTTP przez Twisted ProxyAgent z nagłówkami żądania o wartościach bajtowych.
ProxyAgent łączy się przez przekazany mu endpoint. W przypadku zwykłego żądania HTTP i proxy akceptującego uwierzytelnianie podstawowe dane logowania proxy należy umieścić w nagłówku Proxy-Authorization tego żądania.
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)Ten fragment zakłada, że aplikacja ma już swój reactor. Metoda, URI i pokazane dane nagłówka używają bajtów. Prawdziwe dane uwierzytelniające przechowuj w źródle danych aplikacji; symbol zastępczy pokazuje tylko, jak zbudowany jest nagłówek. Base64 to kodowanie, więc poufność zależy od połączenia, które je przenosi.
Zwrócony Deferred daje obiekt odpowiedzi. Odebranie tego obiektu nie zbiera treści odpowiedzi; odczytaj ją przez udokumentowany interfejs czytania treści i obsłuż błędy asynchroniczne. Limit czasu endpointu ogranicza nawiązanie połączenia, a nie cały czas życia odpowiedzi.
Przykład celowo używa celu HTTP. Nie dodaje negocjacji CONNECT dla HTTPS wyłącznie przez zmianę schematu URI.