AWS API网关 - 弹性Bean Talk的HTTP代理不会直接响应

问题描述 投票:0回答:1

我正在使用API​​网关在Elastic BeansTalk中解耦我的Tomcat后端,但是我无法从API获得响应。

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

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

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

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

那么..我的问题是:

  1. 有人有或有同样的问题?
  2. 有人可以告诉我这个问题是否与Via Http Header有关?
  3. 我可以在API网关中禁用此标头吗?如果是的话,怎么样?
java api amazon-web-services elastic-beanstalk aws-api-gateway
1个回答
0
投票

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

不幸的是,您无法禁用标头。如果你使用REGIONAL端点类型(而不是EDGE),那么不会添加Via头,但是你也失去了EDGE端点的好处。

© www.soinside.com 2019 - 2024. All rights reserved.