Python-requests library Exception handling
Erstelle ich ein download service mit Hilfe der python-requests-Bibliothek (Siehe hier) für das herunterladen von Daten von einem anderen server. Das problem ist, dass manchmal bekomme ich ein 503 error
und ich müssen eine entsprechende Meldung anzeigen. Siehe Beispiel-code unten:
import requests
s = requests.Session()
response = s.get('http://mycustomserver.org/download')
Kann ich überprüfen, aus response.status_code
und Holen Sie sich die status code = 200
.
Aber wie kann ich try/catch
für einen bestimmten Fehler, in diesem Fall, ich möchte in der Lage sein, zu erkennen 503 error
und entsprechend behandelt.
Wie mache ich das?
Blick in den code: raw.githubusercontent.com/kennethreitz/requests/master/requests/..., es gibt viele http-Fehler-codes, es gibt keine Ausnahme-Klasse für jeden, stattdessen gibt es ein für alle http-Fehler
InformationsquelleAutor Frankline | 2014-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum nicht
Edit:
Scheint es, dass Anfragen, die Bibliothek wird auch eine Ausnahme auslösen, für die Sie mit
response.raise_for_status()
Edit2:
Wickeln Sie
raise_for_status
mit den folgendentry/except
503 error
. Trotzdem danke.Ich sehe, fügte der relevanten
try/except
block.Danke. Ihre Letzte änderung dient meine Bedürfnisse gut.
Wie überprüfen Sie für alle Fehler anstelle der Liste jeweils von einer. ? d.h., http-Fehler, schlechte url-Fehler, die ssl-Zertifikat-Fehler, etc.... gibt es eine Allgemeine Ausnahme-handler, die alle Fehler? Oder ich bin einfach nur über diese in die falsche Richtung?
Sie können fangen alle Ausnahmen mit
except e:
und dann im Laufe der Zeit in mehrere spezifischecatch
es um ein einzigartiges Verhalten in jeder situation (wenn Sie benötigen, natürlich)InformationsquelleAutor Martin Konecny
Genauso gut könnte man dies tun:
response.raise_for_status()
wirft einerequests.exceptions.HTTPError
- und hier sind wir nur aufrufenresponse.raise_for_status()
wenn der status-code ist gleich 503InformationsquelleAutor K DawG