我从我提出的请求中收到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
还有其他可以尝试的东西吗?
答案 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