问题 :
使用 Postman 时,AWS API Gateway 代理不会从我的后端服务传回响应,但适用于 curl
描述 :
我有一个想要通过 AWS API 网关公开的后端服务。在这种情况下,网关的使用纯粹是作为 HTTP 代理。所以,
问题
我调用自定义域,
但是,在我的 postman 身上,我看到“无法得到任何回应”
但是,如果我通过
curl
尝试此操作,则会收到后端发送的预期响应。所以,不清楚的部分是——Accept
和用于 API 版本控制的 Content-Type
中传递自定义值。 例如:
Accept: application/json-v1
失败但 Accept: application/xml-v1
正在工作。我认为这与值(value)有关,因为 API Gateway 不喜欢它。
我已经彻底阅读了文档,但仍然找不到对所有这些问题的任何合理解释。我错过了什么导致这些奇怪的问题?到目前为止,我的 google fu 也不足以解决这个问题。
请帮助或同样指出 AWS 网关中可以帮助解决此问题的特定文档或我可能在这些主题上遗漏的任何讨论主题。
至少得到其中一个的答案会让我清楚我的方法。
谢谢人们!
最佳答案
快速回答:添加标题 Accept-Encoding:identity
我在使用 AWS api-gateway 时遇到了完全相同的问题。在我的情况下,解决方案是添加来自 postman 的 header Accept-Encoding:identity
或配置 AWS API 默认将其发送到我的后端。
当我直接从 postman 调用我的后端时,我可以将 header 设置为 gzip
, postman 将正确显示响应,但是当我通过 AWS 执行此操作时,这似乎是一个我无法解决的问题。将提到的 header 设置为 Identity
将指示后端不要修改响应(或应用身份功能)。
关于api - AWS API 网关代理响应失败/丢弃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40358192/