Το ProxyAgent συνδέεται μέσω του endpoint που του παρέχεται. Για ένα απλό αίτημα HTTP και ένα proxy που δέχεται βασικό έλεγχο ταυτότητας, βάλτε τα διαπιστευτήρια του proxy στην κεφαλίδα 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 και τα δεδομένα κεφαλίδας του παραδείγματος χρησιμοποιούν bytes. Κρατήστε τα πραγματικά διαπιστευτήρια στην πηγή διαπιστευτηρίων της εφαρμογής· το σύμβολο θέσης δείχνει μόνο πώς χτίζεται η κεφαλίδα. Το Base64 είναι κωδικοποίηση, άρα η εμπιστευτικότητα εξαρτάται από τη σύνδεση που το μεταφέρει.

Το Deferred που επιστρέφεται παράγει ένα αντικείμενο απόκρισης. Η λήψη αυτού του αντικειμένου δεν συλλέγει το σώμα της απόκρισης· διαβάστε το μέσω της τεκμηριωμένης διεπαφής ανάγνωσης σώματος και χειριστείτε τις ασύγχρονες αποτυχίες. Το χρονικό όριο του endpoint περιορίζει την εγκατάσταση της σύνδεσης, όχι ολόκληρη τη διάρκεια ζωής της απόκρισης.

Το παράδειγμα χρησιμοποιεί σκόπιμα προορισμό HTTP. Δεν προσθέτει διαπραγμάτευση CONNECT για HTTPS απλώς αλλάζοντας το σχήμα του URI.

Σχετικά άρθρα