Ένα αίτημα aiohttp μέσω proxy HTTP
Στείλτε αίτημα aiohttp μέσω proxy HTTP χωρίς έλεγχο ταυτότητας, εξετάστε την κατάστασή του και ολοκληρώστε σε ρητό ασύγχρονο κύκλο ζωής.
Για ένα ασύγχρονο αίτημα μέσω 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 μόνο όταν το περιβάλλον που κληρονόμησε η διεργασία είναι η προβλεπόμενη πολιτική δρομολόγησης.