Python:requests.session——如何确保在Python2.7.9中关闭TCP连接? Python 2.7.9 请求2.17.3
我们观察到,当我们从多个线程调用它时(我们同时运行两到八个线程): 有时没有可用的客户端套接字,它会失败,并出现10048 winsock错误 在我查看的一些文档中,requests.Session()似乎会自动关闭,而在其他地方,它表示它会在某个默认超时时间保持打开状态Python:requests.session——如何确保在Python2.7.9中关闭TCP连接? Python 2.7.9 请求2.17.3,python,sockets,python-requests,Python,Sockets,Python Requests,我们观察到,当我们从多个线程调用它时(我们同时运行两到八个线程): 有时没有可用的客户端套接字,它会失败,并出现10048 winsock错误 在我查看的一些文档中,requests.Session()似乎会自动关闭,而在其他地方,它表示它会在某个默认超时时间保持打开状态 在每次请求后,正确关闭套接字的方法是什么?请求库依赖于urllib3实现底层HTTPConnection 默认情况下,urllib3使TCP连接保持活动状态 有几种方法可以另外指定。我更喜欢包含标题“连接”:“关闭”:
在每次请求后,正确关闭套接字的方法是什么?
请求
库依赖于urllib3
实现底层HTTPConnection
默认情况下,urllib3
使TCP连接保持活动状态
“连接”:“关闭”
:
with requests.Session() as s:
s.put((apiserverUrl + str(id_num) + '/'), headers={'Connection':'close'},
auth=auth, data=jsonPayload)
(有关此答案的更多选项:)
请求
库依赖于urllib3
实现底层HTTPConnection
默认情况下,urllib3
使TCP连接保持活动状态
“连接”:“关闭”
:
with requests.Session() as s:
s.put((apiserverUrl + str(id_num) + '/'), headers={'Connection':'close'},
auth=auth, data=jsonPayload)
(此答案的更多选项:)问题可能是在给定时间打开的插槽数量,而不是插槽是否正确关闭。@mad_uu公平点。我们没有运行很多线程,OP更新了。我想本地端口池比我们的线程数要大得多,我强烈怀疑如果我们在使用后关闭端口,我们就可以继续了。您可能每次都需要关闭请求
s.put(…).close()
问题可能是在给定时间打开的套接字数量,而不是套接字是否正确关闭。@mad\uu公平点。我们没有运行很多线程,OP更新了。我想本地端口池比我们的线程数要大得多,我强烈怀疑如果我们在使用后关闭端口,我们就可以继续了。您可能每次都需要关闭请求s.put(…).close()