文章内容
2019/10/26 14:33:53,作 者: 黄兵
Requests异常处理
在网络请求中,由于网络不稳定以及服务器过载等各种问题导致连接不可用,在程序中这些都会导致异常。
Requests异常处理的处理就显得非常有必要。
下面是Requests的一些异常:
遇到网络问题(如:DNS 查询失败、拒绝连接等)时,Requests 会抛出一个 ConnectionError 异常。
如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。
若请求超时,则抛出一个 Timeout 异常。
若请求超过了设定的最大重定向次数,则会抛出一个 TooManyRedirects 异常。
所有Requests显式抛出的异常都继承自 requests.exceptions.RequestException 。
下面是一个处理Requests异常的范例:
@staticmethod
def request_handle(uri, request_uri):
"""处理request的请求
:returns: 如果成功,返回response_text,处理失败,返回False
"""
try:
request_ip = requests.get(uri)
except requests.exceptions.RequestException as e:
logging.warning('请求出现了错误,远程服务器地址: {remote_uri} , 具体错误内容: {error_message}'
.format(error_message=e, remote_uri=request_uri))
return False
# 记录请求超限
IP_Filter.recording_many_request_proxy(request_ip, request_uri)
# 处理JSON解码问题
try:
response_text = request_ip.json()
except json.decoder.JSONDecodeError as e:
logging.warning('解析Json的时候出现了问题,具体错误内容: {error_message}'.format(error_message=e))
return False
return response_text参考资料:
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - Requests异常处理
SQL Dialect is Not Configured (PyCharm)
关于大并发mysql连接引起数据库错误OperationalError: (2003, "Can't connect to MySQL server on 'x.x.x.x (99)")分析
关于大并发mysql连接引起数据库错误OperationalError: (2003, "Can't connect to MySQL server on 'x.x.x.x (99)")分析
评论列表