import requests
requests.get(path_url, timeout=100)
在上述使用Python requests库的代码中,当requests.get运行完毕后,连接是否会自动关闭?如果没有关闭,我应该如何确保连接已关闭?
import requests
requests.get(path_url, timeout=100)
是的,在get
代码后面有一个session.close
的调用。如果使用像PyCharm这样的合适的IDE,你可以跟踪get
代码以查看发生了什么。在get
中,存在对请求的调用:
return request('get', url, params=params, **kwargs)
request
方法的定义中,执行session.close
。# By using the 'with' statement we are sure the session is closed, thus we
# avoid leaving sockets open which can trigger a ResourceWarning in some
# cases, and look like a memory leak in others.
with sessions.Session() as session:
return session.request(method=method, url=url, **kwargs)
get
调用会调用request('get'...
,就像我答案中开始的那一行所说明的那样。如果你跟随我提供的链接,你实际上也会看到get
方法以及它如何调用request
的方式。 - idjaw