Anfragen.HTTPError uncaught nach Anfragen.get() 404-Antwort
Ich habe da ein kleines problem mit den Anforderungen der Bibliothek.
Sagen, ich habe zum Beispiel eine Aussage wie diese in Python:
try:
request = requests.get('google.com/admin') #Should return 404
except requests.HTTPError, e:
print 'HTTP ERROR %s occured' % e.code
Aus irgendeinem Grund wird die Ausnahme nicht abgefangen wird. Ich habe die API-Dokumentation für die Anfragen, aber es ist ein bisschen schlanker. Denn wer hat mehr Erfahrung mit der Bibliothek, die in der Lage sein könnte, um mir zu helfen?
Erste Sache zuerst: wenn Sie versuchen, zu fangen unbekannten Ausnahmen "heben" und zu versuchen, Sie zu fangen und zu beobachten, ob/wie es möglich ist.
InformationsquelleAutor CoffeeIsProgramming | 2013-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Interpreter ist dein Freund:
Auch
requests
Ausnahmen:Beachten Sie auch, dass standardmäßig
requests
nicht raise exception, wenn der status nicht200
:Es ist raise_for_status() Methode, die es macht:
Ich bin mir nicht ganz sicher, was du meinst. URI Schema ist der Teil, der gibt Protokoll (http, https, ftp, etc). Also der Fehler sagt, dass es kein Schema gibt, in
google.com/admin
wurden, das solltehttps://google.com/admin
. Könnte man überschreibenrequests
Methoden und prüfen Sie die fehlende Regelung selbst und fügen Sie "http://" wenn es fehlt, aber es ist nicht eine gute Idee.Okay, nun, ich denke, mein problem ist, dass selbst wenn ich meinen code entsprechend https:// google.com/admin rein als Beispiel wohlgemerkt, es geht noch zurück, einige zufällige http-Antwort. Ich bin nur neugierig, warum keiner der Antworten verfangen sich auch immer, wenn ich Anrufe, Anfragen.get('https:// google.com/admin'). Sicherlich irgendeine Art von http-error-response wird auftreten, und es ist nicht erwischt zu werden =/
Siehe die Antwort zu Bearbeiten.
Danke, ich Schätze die Antwort. =)
InformationsquelleAutor gatto
Läuft dein code in python-2.7.5:
Ergebnisse in:
File "C:\Python27\lib\site-packages\requests\models.py", line 291, in prepare_url
raise MissingSchema("Invalid URL %r: No schema supplied" % url)
requests.exceptions.MissingSchema: Invalid URL u'google.com/admin': No schema supplied
Um Ihren code zu Holen, diese Ausnahme, die Sie brauchen, um hinzuzufügen:
Hinweis auch ist es nicht ein fehlendes schema, sondern eine fehlende Regelung.
InformationsquelleAutor oenpelli