在与通过AWS API Gateway托管的API绑定的Kivy应用程序中,我一直在努力处理HTTPS请求。首先,我从Python3移至2,然后从请求库移至kivy的URLRequest。
该应用程序可以在我的Linux桌面上正常运行。当我使用请求库发出API请求时,我收到一个SSL错误:SSL23_GET_SERVER_HELLO:sslv3警报握手失败
我转而使用URLRequest,它似乎与请求具有相同的SSL错误。传递到URLRequest错误回调的参数为:(,SSLError(1,'_ssl.c:503:error:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败'))
我发现了这个stackoverflow问题:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure [Kivy]
这暗示这与过时的python版本有关。
仅仅是Kivy android应用程序无法与AWS API Gateway通信吗?
Buildozer .spec行: 需求= hostpython2,kivy,future,python-dateutil,openssl,pyopenssl,jmespath,botocore,boto3,请求
android.permissions =互联网
更新:我测试了URL为https://kivy.org/logos/kivy-logo-black-64.png的HTTPS GET请求。这已在Android App中成功完成。该问题似乎特定于AWS API Gateway使用的SSL版本
UPDATE2:Android上的Kivy也可以与Google Cloud Platform的云功能HTTPS端点配合使用。甚至有更多证据表明此问题与AWS API Gateway密切相关。
答案 0 :(得分:1)
确保您的.spec文件具有Internet权限。我也相信,如果您正在使用python2,则需要在您的需求中使用“ hostpython2”。我不确定您是否有依赖于python 2或3的任何要求,但是如果您使用的是python,请确保它们适用于python 2。另外,我认为您的请求要求中不需要[安全性]。尝试仅放置“请求”,您也可以尝试安装sqlite并将g添加到您的需求中。