Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中具有简单post请求的线程中出现SSL错误_Python_Multithreading_Ssl_Ssl Certificate - Fatal编程技术网

python中具有简单post请求的线程中出现SSL错误

python中具有简单post请求的线程中出现SSL错误,python,multithreading,ssl,ssl-certificate,Python,Multithreading,Ssl,Ssl Certificate,我试图做一个简单的post请求,我使用一个列表,因为我想使用线程同时发送所有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, a

我试图做一个简单的post请求,我使用一个列表,因为我想使用线程同时发送所有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个月前使用过这个代码,它工作得非常好。 本周我想回到这个项目上,我意识到我犯了一些错误,尤其是这个错误:

Exception in thread Thread-14:

Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
  self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
  self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 94, in post
  return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 49, in request
  return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 457, in request
  resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 569, in send
  r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 420, in send
  raise SSLError(e, request=request)
SSLError: <unprintable SSLError object>
这个代码只是我项目的一部分,代码每分钟运行一次,我不知道为什么,但是这个问题(SSLError)一天可能只出现10次。我让这个脚本在不同的Raspberry Pi上运行,有些脚本有相同的问题,但频率不同,有些根本没有

有什么想法吗?

提前谢谢

在如下请求方法中使用
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)
如果您使用的是线程,那么它将像

list.append(threading.Thread(target=requests.post, args=(url,),kwargs={"verify":False})) #**kwargs should be passed seperately.
出现此错误是因为python请求尝试验证https连接的证书,因此您必须通过传递
verify=False
来覆盖它,或者您也可以像下面这样在verify中提供证书
requests.get(url,verify=“/path/to/certificate.ext”)


我还怀疑这是否应该是get请求,因为据我所知,查询参数不会出现在post请求中。因此,如果您使用
GET
方法,相同的
verify
也适用于那里。

好的,谢谢,我会试试这个,我会告诉您它是否有效!我有一个语法错误,我正试图自己解决它,但我刚刚开始Python。希望你能看到这个问题!我想您可能会在verify=False处出错,我甚至没有在URL列表下尝试verify=False。尝试使用单个url,您可能会有一些想法。
args=([url,verify=False,])
args=(url,verify=False)
是错误的,我仍然得到了语法错误
liste.append(threading.Thread(target=requests.post,args=(url,verify=False,))
如果我像你说的那样通过了kwargs,我只得到一个警告
unsecureRequestWarning
,但我认为你可以修改回溯以避免出现大的回溯
list.append(threading.Thread(target=requests.post, args=(url,),kwargs={"verify":False})) #**kwargs should be passed seperately.