为了账号安全,请及时绑定邮箱和手机立即绑定

Python SSL连接“发生EOF违反协议”

Python SSL连接“发生EOF违反协议”

呼啦一阵风 2021-03-05 23:08:53
我正在使用Django Celery任务通过Gevent使用请求库连接到Facebook Graph API。我经常遇到的问题是,我时不时地发生EOF违反协议异常的情况。我到处搜索,各种来源提供了不同的修复程序,但似乎都没有用。我试过猴子修补ssl模块(gevent.monkey.patch_all())和其他一些修补程序,但是没有运气。我什至不确定这是否是openssl问题,因为一些消息来源可能会建议,因为在应用Gevent优化之前我还没有遇到过Connection error: [Errno 8] _ssl.c:504: EOF occurred in violation of protocolTraceback (most recent call last):File "/home/user/workspace/startup/project/events/tasks.py", line 52, in _process_pagedata = requests.get(current_url)File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 55, in getreturn request('get', url, **kwargs)File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 44, in requestreturn session.request(method=method, url=url, **kwargs)File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 354, in requestresp = self.send(prep, **send_kwargs)File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 460, in sendr = adapter.send(request, **kwargs)File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/adapters.py", line 250, in sendraise SSLError(e)SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol我正在使用最新的1.0rc Gevent版本。尽管URL正确,但仍会不时弹出的另一个问题是:连接被“错误(2,“没有这样的文件或目录”))破坏后重试(剩余5次尝试):/ ID / events?limit = 5000&fields = description ,名称,位置,开始时间,结束时间和访问令牌=令牌
查看完整描述

3 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

我安装了最新的Python 2.7(2.7.11),问题消失了。我相信这个问题甚至可以在2.7.6中解决(我在Mac OSX上使用的是2.7.5)。


查看完整回答
反对 回复 2021-03-26
?
郎朗坤

TA贡献1921条经验 获得超9个赞

在为我的机器学习获取推文时,我遇到了同样的错误。进行以下pip安装对我有帮助。这有效:


pip install ndg-httpsclient

pip install pyopenssl

pip install pyasn1

它删除了我的SSLError:违反协议(_ssl.c:590)错误发生EOF。


查看完整回答
反对 回复 2021-03-26
  • 3 回答
  • 0 关注
  • 545 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信