Για ένα ασύγχρονο αίτημα μέσω proxy HTTP χωρίς έλεγχο ταυτότητας, κρατήστε τη διαδρομή στο session.get(). Προσθέστε aiohttp στο έργο αν χρειάζεται:

uv add aiohttp

Αντικαταστήστε τη διεύθυνση τεκμηρίωσης παρακάτω με το δικό σας σημείο ακρόασης HTTP ή υποψήφιο από τη λίστα HTTP proxy. Πρέπει να επιτρέπει CONNECT προς τον προορισμό HTTPS· ένα σημείο μόνο για SOCKS χρειάζεται κατάλληλο connector αντί για αυτό το όρισμα proxy.

import asyncio
import aiohttp

async def main():
    timeout = aiohttp.ClientTimeout(total=15, connect=5)
    async with aiohttp.ClientSession(
        timeout=timeout,
        trust_env=False,
    ) as session:
        async with session.get(
            "https://example.com/",
            proxy="http://203.0.113.10:8080",
        ) as response:
            print(response.status)
            print((await response.text())[:200])

asyncio.run(main())

Το αίτημα εκτυπώνει την κατάσταση HTTP και τους πρώτους 200 χαρακτήρες του κειμένου απόκρισης. Ένα 403 ή 429 παραμένει εδώ εξετάσιμη απόκριση· καλέστε response.raise_for_status() αν η εφαρμογή πρέπει να μετατρέπει τις ανεπιτυχείς καταστάσεις σε εξαιρέσεις. Οι ασύγχρονοι διαχειριστές συμφραζομένων κλείνουν συνεδρία και απόκριση όταν τελειώνουν τα μπλοκ τους, ακόμη και σε εξαίρεση.

Ο προϋπολογισμός total των 15 δευτερολέπτων καλύπτει τη λειτουργία του αιτήματος. Ο προϋπολογισμός connect των 5 δευτερολέπτων περιλαμβάνει αναμονή για διαθέσιμη σύνδεση από τη δεξαμενή, οπότε μια απασχολημένη δεξαμενή μπορεί να τον εξαντλήσει πριν ανοίξει νέα υποδοχή. Αυτό έχει σημασία στην προσαρμογή της μίας κλήσης σε ταυτόχρονους ελέγχους.

Το trust_env=False διατηρεί τη διαδρομή του παραδείγματος ρητή. Το aiohttp δεν εντοπίζει από προεπιλογή μεταβλητές περιβάλλοντος proxy· η εξαγωγή μίας σε άλλο τερματικό δεν διαμορφώνει αυτή την κλήση. Επιλέξτε trust_env=True μόνο όταν το περιβάλλον που κληρονόμησε η διεργασία είναι η προβλεπόμενη πολιτική δρομολόγησης.

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