Python Google应用程序引擎-ConnectionError:(';连接中止。';,错误(13,';权限被拒绝';)
我正在处理连接错误,需要帮助。我正在使用Python2.7和谷歌应用程序引擎来完成这个项目。我正在尝试使用第三方API检索要在我的网站上显示的其他信息,但我收到了ConnectionError。 错误如下所示: 第一个连接错误:Python Google应用程序引擎-ConnectionError:(';连接中止。';,错误(13,';权限被拒绝';),python,python-2.7,google-app-engine,Python,Python 2.7,Google App Engine,我正在处理连接错误,需要帮助。我正在使用Python2.7和谷歌应用程序引擎来完成这个项目。我正在尝试使用第三方API检索要在我的网站上显示的其他信息,但我收到了ConnectionError。 错误如下所示: 第一个连接错误: requests/adapters.py", line 490, in send raise ConnectionError(err, request=request) ConnectionError: ('Connection aborted.', HTTPE
requests/adapters.py", line 490, in send
raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', HTTPException('Deadline exceeded
while waiting for HTTP response from URL: http://stats.nba.com/stats/scoreboard?LeagueID=00&GameDate=03%2F03%2F2018&DayOffset=0',))
我不确定我是否正确地解决了这个问题,但我将中的基本URL的http更改为https
在那之后,它给了我一个警告:
requests/adapters.py", line 506, in send
raise SSLError(e, request=request)
SSLError: HTTPSConnectionPool(host='stats.nba.com', port=443): Max retries exceeded with url: /stats/scoreboard?DayOffset=0&GameDate=03%2F03%2F2018&LeagueID=00 (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",))
同样,我不确定是否正确修复了它,但我在app.yaml文件中添加了name:ssl和version:latest
之后,它给了我另一个连接错误,我已经坚持了一段时间了
requests/adapters.py", line 490, in send
raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', error(13, 'Permission denied'))
任何帮助或链接,它将帮助我解决这个问题将不胜感激。谢谢 由于您使用的是第三方API,因此无法真正提高其性能和可用性。您可以做的是减少此类故障对您自己的客户机的影响,方法是不将对外部API的调用直接放在构建对客户机请求的响应的关键路径中 如果您从第三方API获得并传递到客户端的信息不是实时的,则可以使用缓存设置:
- 后台(定期和/或按需)作业向第三方API发出请求,以填充/刷新缓存
- 您总是使用缓存中的信息(而不是直接从第三方API)回复客户机—性能和可用性在您的控制之下
- 使用您可以立即提供的响应部分和一个脚本来回复您的客户机请求,该脚本指示客户机跟进针对第三方API数据的AJAX请求,该请求仍处于挂起状态
- 启动对第三方API数据的后台请求,如果需要重试
- 每当您获得第三方API数据时,您都会用它回复AJAX请求
- 在客户端,脚本将通过AJAX接收的数据组装到页面中并显示
- 如果数据足够“新鲜”,则立即从缓存生成,或者
- 延迟,直到通过该客户端请求触发的请求从第三方接收到新数据
当然,在与第三方API交互时,您的代码需要准备并处理每一个这样的失败。似乎NBA希望此端点(')仅用于普通浏览,而不是以编程方式访问。特别是考虑到他们没有公开记录。我个人建议您在访问此端点之前直接与他们联系,特别是如果您想从Google App Engine访问此端点 我是在使用curl对该端点执行一些http请求时得出这个结论的。例如,在使用第一个示例中的url时 我注意到:
请求
现在在生产和发展:
from requests_toolbelt.adapters import appengine
appengine.monkeypatch()
有关详细信息