Get HTTP Error code from requests.exceptions.HTTPError

Shiplu Mokaddim picture Shiplu Mokaddim · Oct 13, 2013 · Viewed 48.7k times · Source

I am catching exceptions like this,

def get_url_fp(image_url, request_kwargs=None):
    response = requests.get(some_url, **request_kwargs)
    response.raise_for_status()
    return response.raw


try:
   a = "http://example.com"
   fp = get_url_fp(a)

except HTTPError as e:
    # Need to check its an 404, 503, 500, 403 etc.

Answer

Lukasa picture Lukasa · Oct 13, 2013

The HTTPError carries the Response object with it:

def get_url_fp(image_url, request_kwargs=None):
    response = requests.get(some_url, **request_kwargs)
    response.raise_for_status()
    return response.raw


try:
    a = "http://example.com"
    fp = get_url_fp(a)

except HTTPError as e:
    # Need to check its an 404, 503, 500, 403 etc.
    status_code = e.response.status_code