文章内容
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)")分析
评论列表