python中带有简单post请求的线程中存在SSL错误

2024-06-16 09:44:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试做一个简单的post请求,我使用一个列表,因为我想用thread同时发送所有的post请求。下面是一个url示例:

            s = "https://emoncms.org/input/post.json?node="+str(test)+"&json={test_stack_overflow:0}&apikey="+str(apikey)
            list.append(threading.Thread(target=requests.post, args=([s, ])))

我大概3个月前用过这个代码,它工作得很好。 本周我想重新开始这个项目,我意识到我犯了一些错误,尤其是这个:

^{pr2}$

我得到了另一个错误,ConnectionError,但我认为这是由于网络或是因为网站无法跟踪它的活动或关闭。如果你想的话,我给你留个回溯:

ConnectionError: ('Connection aborted.', error(101, 'Network is unreachable'))

这段代码只是我项目的一部分,代码每分钟都在运行,我不知道为什么,但是这个问题(SSLError)每天可能只出现10次。我让这个脚本运行在不同的树莓派和一些有相同的问题,但频率不一样,其他人根本没有。在

有什么想法吗?
提前谢谢!在


Tags: 项目代码httpstestjsonurl示例列表
1条回答
网友
1楼 · 发布于 2024-06-16 09:44:36

在requests方法中使用verify=False,如下所示

import requests
url="https://emoncms.org/input/post.json?node="+str(test)+"&json={test_stack_overflow:0}&apikey="+str(apikey)
requests.post(url,verify=False)

如果你正在使用线程,那么它将像

^{pr2}$

您得到这个错误是因为python请求试图验证https连接的证书,所以您必须通过传递verify=False来覆盖它,或者您也可以像这样在verify中提供证书requests.get(url,verify="/path/to/certificate.ext")

另外,我怀疑这应该是一个get请求,因为据我所知,查询参数不会出现在post请求中。所以如果你使用GET方法,同样的verify也适用于此。在

相关问题 更多 >