2017-10-20 11 views
0

Je suis attraper des erreurs http en utilisant python, mais je veux connaître le code de l'erreur (par exemple 400, 403, ..). De plus, je veux obtenir le message de l'erreur. Cependant, je ne peux pas trouver ces deux attributs dans la documentation. Quelqu'un peut-il aider? Je vous remercie.urllib3 comment trouver le code et le message d'erreur http

try: 
     """some code here""" 
    except urllib3.exceptions.HTTPError as error: 
     """code based on error message and code""" 

Répondre

0

Pourquoi l'attrapez-vous en tant qu'exception? Vous voulez voir la réponse http, vous n'avez donc pas besoin de la traiter comme une exception.

Vous pouvez simplement faire votre demande HTTP et lire la réponse comme ceci:

import urllib3 
http = urllib3.PoolManager() 
req = http.request('GET', 'http://httpbin.org/robots.txt') 
status_code = req.status 
server_response = req.data 

Vérifiez urllib3 readthedocs pour plus d'informations.

0

En supposant que vous voulez dire la description de la réponse HTTP lorsque vous avez dit « le message de l'erreur », vous pouvez utiliser responses de http.client comme dans l'exemple suivant:

import urllib3 
from http.client import responses 

http = urllib3.PoolManager() 
request = http.request('GET', 'http://google.com') 

http_status = request.status 
http_status_description = responses[http_status] 

print(http_status) 
print(http_status_description) 

... qui, lorsqu'il est exécuté vous donnera:

200 
OK 

sur mon exemple.

J'espère que ça aide. Cordialement.