我一直在处理与通过 AWS API Gateway 托管的 API 绑定的 Kivy 应用程序中的 HTTPS 请求。首先,我从Python3迁移到2,然后从requests库迁移到kivy的URLRequest。
该应用程序在我的 Linux 桌面上运行良好。当我使用 requests 库发出 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警报握手失败[Kivy] https://stackoverflow.com/questions/49597438/ssl23-get-server-hellosslv3-alert-handshake-failure-kivy
这意味着这与过时的 python 版本有关。
难道只是 Kivy Android 应用程序无法与 AWS API 网关通信?
Buildozer .spec 行:
要求= hostpython2、kivy、future、python-dateutil、openssl、pyopenssl、jmespath、botocore、boto3、请求
android.permissions = 互联网
更新:我使用 URL 测试了 HTTPS GET 请求https://kivy.org/logos/kivy-logo-black-64.png https://kivy.org/logos/kivy-logo-black-64.png。这在 Android 应用程序中成功完成。此问题似乎特定于 AWS API Gateway 使用的 SSL 版本
UPDATE2:Android 上的 Kivy 也可以与 Google Cloud Platform 的云功能 HTTPS 端点配合良好。更多证据表明此问题与 AWS API Gateway 特定相关。