Python请求无法处理403错误

时间:2020-06-17 21:22:45

标签: python python-requests

我从我提出的请求中收到403错误(没问题,这很好)。但是,我似乎无法抓住例外并正确处理该错误。我的代码继续前进,就像没有发生任何错误并导致其他问题一样。 代码

    try:
        verify = True if os.environ.get('environment', 'dev') != 'dev' else False
        response = requests.post(url, headers=headers, data=payload, verify=verify)
        return response.content
    except requests.HTTPError as e:
        print('Error', e)
        return None
    except requests.exceptions.RequestException as e:
        print("Connection refused", e)
        return None
    except Exception as e:
        print("Internal error", e)
        return None

还有其他可以尝试的东西吗?

1 个答案:

答案 0 :(得分:1)

要捕获403,您需要引发异常。这可以通过在帖子后致电response.raise_for_status()来完成。参见documentation

try:
    verify = True if os.environ.get('environment', 'dev') != 'dev' else False
    response = requests.post(url, headers=headers, data=payload, verify=verify)
    response.raise_for_status() # This will throw an exception if status is 4xx or 5xx
    return response.content
except requests.HTTPError as e:
    print('Error', e)
    return None
except requests.exceptions.RequestException as e:
    print("Connection refused", e)
    return None
except Exception as e:
    print("Internal error", e)
    return None