检查会话是否仍然有效/处理connectionError的最有效方法是什么?

时间:2016-03-13 08:33:29

标签: python python-3.x session python-requests python-3.5

如何检查Python 3.5中的Session是否仍能处理get()个请求?是否有一个标准程序,当人们为多个请求重复使用同一个会话时,使用会话发送get()个请求时,人们会使用这个程序来检查?

具体来说,我想尽可能有效地处理ConnectionErrors;我必须编写假设的代码,以尽可能提高性能。

我想尽可能避免或管理的错误示例:

  File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 480, in get
    return self.request('GET', url, **kwargs)
  File "C:\Anaconda3\lib\site-packages\rauth\session.py", line 210, in request
    return super(OAuth1Session, self).request(method, url, **req_kwargs)
  File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "C:\Anaconda3\lib\site-packages\requests\adapters.py", line 426, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

1 个答案:

答案 0 :(得分:0)

最好捕获requests引发的异常并妥善处理它们(请参阅here),使用timeout values并可能使用适合您的用例的重试策略,并且用模拟responses进行单元测试。不知道您要有效管理 的其他含义。