Python Requests: proxies an request() übergeben, nicht an Request
Legen Sie die Proxy-Konfiguration bei der API ab, die die Anfrage sendet, nicht beim Konstruktor des Request-Objekts, das die HTTP-Nachricht beschreibt.
Requests bietet eine Klasse Request und eine Funktion request in Kleinbuchstaben. Eine Änderung der Groß- und Kleinschreibung kann eine gültige API mit der falschen Argumentliste aufrufen, statt einen einfachen Fehler über eine unbekannte Funktion zu erzeugen.
Das Request-Objekt beschreibt die HTTP-Nachricht. Die Proxy-Konfiguration gehört zu der API, die sie sendet. Für einen gewöhnlichen Aufruf:
response = requests.request(
'GET', 'https://example.com/',
proxies=routes, timeout=15
)Hier ist routes die für diesen Vorgang gewählte Proxy-Zuordnung. Für erlaubte öffentliche Anfragen bietet die Liste kostenloser Proxys Kandidaten, die mit einem Protokoll formatiert werden können, das diese Requests-Installation unterstützt. Dasselbe Schlüsselwort proxies an den Konstruktor von requests.Request zu übergeben, ist nicht gleichwertig.
Wenn die Anwendung absichtlich vorbereitete Anfragen verwendet, halten Sie die Vorbereitung der Nachricht und die Konfiguration des Sendens getrennt. Der Sendefluss der Sitzung braucht außerdem die beabsichtigte Zusammenführung der Umgebung, das Zeitlimit, die Prüfung und die Proxy-Einstellungen.
Beheben Sie die API-Abweichung, bevor Sie Proxy-Endpunkte austauschen. Ein TypeError im Konstruktor tritt auf, bevor dieses Objekt die beabsichtigte Netzwerkanfrage ausgeführt hat.