import requests
while True:
try:
posting = requests.post(url,json = data,headers,timeout = 3.05)
except requests.exceptions.ConnectionError as e:
continue
# If a read_timeout error occurs, start from the beginning of the loop
except requests.exceptions.ReadTimeout as e:
continue
指向更多代码的链接:Multiple accidental POST requests in Python
此代码使用requests
库无限期地执行POST请求。我注意到,当尝试多次失败并且while循环多次启动时,当我最终发送post请求时,我会在同一秒发现服务器端的多个条目。我同时写了一个txt文件,它只显示了一个条目。每个条目是5个读数。这是图书馆本身的问题吗?有没有办法来解决这个问题?!无论我把它放在什么样的条件下它仍然无法工作:/!
You can notice the reading at 12:11:13 has 6 parameters per second while at 12:14:30 (after the delay, it should be every 10 seconds) it is a few entries at the same second!!! 3 entries that make up 18 readings in one second, instead of 6 only!
答案 0 :(得分:2)
看起来服务器收到你的请求并对它们采取行动但是没有及时响应(3s是一个非常低的超时,负载尖峰/分页操作很容易让服务器错过它,除非它采用特殊措施)。我建议
requests
)并且不使用超时(TCP有自己的超时,让它失败)。从服务器端,您可能想要: