无法使用 GPRS 连接调用 AWS API 网关 GET URL

Unable to invoke AWS API Gateway GET URL with GPRS connection

我正在尝试通过 GPRS AT-Commands 呼叫已部署的 API。我能够进行 HTTPS 调用,例如在 https://www.amazon.jobs/ 上执行 GET 会给我一个 200 和一个很大的响应。但是,我尝试在部署的 API 上做类似的事情,但最终收到 601 错误,这只是 GPRS 的 "Network Error"。

API 通过我的浏览器甚至命令提示符中的 Python one-liner 工作。我想这可能与证书或 headers 或许多其他事情有关,但我不确定。 GET 到 API 网关与 GET 到其他亚马逊 URL(如 amazon.jobs)之间有什么区别?更好的主意是创建一个可以构建对 API 网关的成功调用的中间端点吗?

回顾评论中的讨论...

API 网关需要与支持服务器名称指示器 (SNI) 的客户端建立 https 连接。 SNI是TLS的扩展,SIM900的GPRS模块好像不支持

目前没有使用没有 SNI 的 API 网关的好选择。您可以将 CloudFront 分配放在 API 前面,并启用 CloudFront 对专用 IP 的支持,从而消除对 SNI 的需求。这是一个相当昂贵的选择,每月 600 美元。在 ELB 后面设置多个 EC2 实例会更便宜。