当前位置: 首页 > 知识库问答 >
问题:

python 2.7上的urllib3谷歌应用程序引擎上的SNI错误

廖诚
2023-03-14

我正试图从我的网站下载一个HTTPS页面,该页面由SNI托管在谷歌应用程序引擎上。无论我使用什么库,都会出现以下错误:

[Errno 8] _ssl.c:504: EOF occurred in violation of protocol

我尝试了多种方法来解决此错误,包括使用urllib3 openssl monkeypatch:

from urllib3.contrib import pyopenssl
pyopenssl.inject_into_urllib3

但是我总是得到上面提到的同样的错误。

有什么想法吗?

共有1个答案

堵德曜
2023-03-14

不幸的是,对于urllib3,Python标准库直到Python 3.2才添加SNI支持。(见问题#118@urllib3)

要在Python2.7和urllib3中使用SNI,需要使用PyOpenSSL注入monkeypatch。(见第156期@urllib3)

from urllib3.contrib import pyopenssl
pyopenssl.inject_into_urllib3()

您的问题基本上有相同的代码,只是缺少pyopenssl上的括号调用。将\u注入\u urlib3()调用。解决这个问题应该会奏效。

您还需要确保以下依赖项可用:

  • pyOpenSSL(使用0.13测试)
 类似资料:
  • 我在google app engine上遇到了fopen()的问题。正常工作3-4次,比服务器的响应时间长。 信息:fopen(https://website_url/image_name.png):无法打开流:连接已关闭。 知道怎么排除故障吗? PHP ini有

  • 很好的一天, 我非常基本的Nodejs应用程序部署在谷歌云应用程序引擎实例上没有启动。该应用程序在本地工作,使用运行时没有错误——在应用程序实例上,当通过Cloud shell手动启动时,该应用程序成功运行(使用

  • 我是谷歌应用引擎的新手。要使用Java App Engine,Google提供了两个选项:创建一个Maven项目,或者由Eclipse Google插件支持的非Maven项目。根据文档,Eclipse版本更容易。那么我应该继续日食吗?但是我看到了很多关于maven的帖子。有人能评论一下使用Maven的利弊吗。 谢谢

  • 我正试图使用Tensorflow从Google应用程序引擎上的模型进行预测。会话似乎启动并运行了几秒钟,然后工作进程被终止/启动。 tensorflow/core/platform/cpu\u feature\u guard.cc:142]您的cpu支持该tensorflow二进制文件未编译为使用:AVX2 FMA的指令 tensorflow/core/platform/profile_utils

  • 具体到基于Docker的部署,这两者之间有什么区别?由于Google App Engine Flexible现在也支持基于Dockerfile的部署,而且它也是完全管理的服务,所以它似乎比在Container Engine上配置Kubernetes部署更可取,不是吗? 有哪些用例更倾向于使用Google容器引擎而不是灵活的应用引擎?

  • 我一直在努力了解如何在谷歌云上设置以下架构: 谷歌应用引擎收到HTTP请求