Je veux récupérer le code d'état HTTP une fois qu'il déclenche une exception URLError:
J'ai essayé mais je n'ai pas aidé:
except URLError, e:
logger.warning( 'It seems like the server is down. Code:' + str(e.code) )
Vous ne devriez pas vérifier un code d'état après avoir attrapé URLError
, car cette exception peut être déclenchée dans des situations où aucun code d'état HTTP n'est disponible, par exemple lorsque vous obtenez des erreurs de connexion refusée.
Utilisez HTTPError
pour rechercher des erreurs spécifiques HTTP, puis utilisez URLError
pour rechercher d'autres problèmes:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
print e.code
except urllib2.URLError, e:
print e.args
Bien sûr, vous voudrez probablement faire quelque chose de plus intelligent que d'imprimer simplement les codes d'erreur, mais vous avez l'idée.
Vous ne savez pas pourquoi vous obtenez cette erreur. Si vous utilisez urllib2
cela devrait aider:
import urllib2
from urllib2 import URLError
try:
urllib2.urlopen(url)
except URLError, e:
print e.code