【问题标题】:AWS API Gateway - HTTP Proxy for Elastic Beans Talk does not Passthrough responsesAWS API Gateway - Elastic Beans Talk 的 HTTP 代理不传递响应
【发布时间】:2018-03-31 23:09:34
【问题描述】:

我正在使用 API Gateway 在 Elastic BeansTalk 中解耦我的 Tomcat 后端,但我无法从 API 获取响应。

当我尝试使用 API Gateway 控制台进行测试时,集成请求工作正常。它在后端也运行良好。我使用 API 端点发出请求并检查服务器日志,它给出了预期的 200 响应。

但是当 API 网关为代理转发响应时,它无法在任何客户端解析。我尝试使用网络浏览器、API 测试工具和移动客户端 (iOS)。在每种情况下,代理都会告诉他“无法解码原始数据”!我使用 curl 检查了端点,它工作正常。比较来自 API Gateway 和 Elastic BeansTalk 端点的响应,唯一的区别是在 API Gateway 响应中通知的 Content-Size 长一个字节。

做了一些研究,网上有些人发现了同样的问题,不同的后端服务和不同的代理。例如,here 某人讲述了 Safari 尝试访问 Flickr 时出现的相同问题。在这个问题的回答中,有人说这个问题与服务器插入的Http Via header有关。

我检查了 API Gateway 的响应标头,确实它有一个 Via 标头,通知响应是由 Cloudfront 提供的。我寻找禁用此选项的选项以测试这是否是问题所在。但是没找到!

所以..我的问题是:

  1. 有人遇到或遇到过同样的问题吗?
  2. 谁能告诉我问题是否与Via Http Header有关?
  3. 我可以在 API Gateway 中禁用此标头吗?如果是,怎么做??

【问题讨论】:

  • 您是否使用 API Gateway 生成的 iOS 开发工具包?
  • 不!我正在使用基础包中的 http 会话对象。我确实在 iOS sdk 上遇到了很大的问题,然后就放弃了……主要与 Cognito 相关……

标签: java api amazon-web-services amazon-elastic-beanstalk aws-api-gateway


【解决方案1】:

我可以在 API Gateway 中禁用此标头吗?如果是的话,怎么办??

很遗憾,您无法禁用标题。如果您使用REGIONAL 端点类型(而不是EDGE),则不会添加Via 标头,但是您也会失去EDGE 端点的好处。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多