我正在尝试通过GPRS AT-Commands调用已部署的API。我可以进行HTTPS调用,例如在https://www.amazon.jobs/上进行GET,可以得到200和大的响应。但是我尝试在我部署的API上做类似的事情,但最终收到601错误,这只是GPRS的“网络错误”。
API通过我的浏览器或命令提示符中的Python one-liner工作。我认为它可能与证书或标题或许多其他事情有关,但我不确定。 GET与API网关有什么区别,比如对其他Amazon网址(如amazon.jobs)的GET?更好的想法是创建一个可以构建成功调用API网关的中间端点吗?
答案 0 :(得分:1)
从评论中重新讨论...
API Gateway需要与支持服务器名称指示符(SNI)的客户端建立https连接。 SNI是TLS的扩展,听起来SIM900 GPRS模块可能不支持它。
目前没有使用没有SNI的API网关的好选择。您可以在您的API前放置CloudFront分配,并启用CloudFront对专用IP的支持,从而消除对SNI的需求。这是一个相当昂贵的选择,每月600美元。在ELB后面设置多个EC2实例会更便宜。