我遇到的问题是我无法找到其他地方的解决方案。
我正在使用包含客户端ID和令牌信息(仅仅是python字符串)的一些数据向Google发布帖子请求,但我偶尔会收到此错误:
TypeError: initializer for ctype 'int(*)(int, X509_STORE_CTX *)' must be a pointer to same type, not cdata 'int(*)(int, X509_STORE_CTX *)'
它似乎每隔一段时间都有效,然后有时会抛出此错误。我尝试将所有数据/网址编码为' utf-8'但这似乎没什么帮助,因为我仍然得到错误。如果我转动验证= False它可以工作,但我想保持它。以下是完整的跟踪:
url = 'https://accounts.google.com/...'
data = {'refresh_token': ...,
'client_id': …,
'client_secret': ...,
'grant_type': 'refresh_token',
}
File "/path/to/file/file.py", line 124, in _my_function.py
response = requests.post(url, data=data)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 94, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 49, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 457, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 569, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 362, in send
timeout=timeout
File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py", line 516, in urlopen
body=body, headers=headers)
File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py", line 304, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py", line 722, in _validate_conn
conn.connect()
File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connection.py", line 229, in connect
ssl_version=resolved_ssl_version)
File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 255, in ssl_wrap_socket
ctx.set_verify(_openssl_verify[cert_reqs], _verify_callback)
File "/usr/local/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 550, in set_verify
:param depth: An integer specifying the verify depth
TypeError: initializer for ctype 'int(*)(int, X509_STORE_CTX *)' must be a pointer to same type, not cdata 'int(*)(int, X509_STORE_CTX *)'
使用请求2.4.2和pyopenssl 0.14。如果您有任何想法会很棒,谢谢。
编辑:将pyopenssl降级回0.13会使错误消失。