使用AWS API Gateway时如何实现POST请求体全量透传
问题场景
在AWS部署REST API网关并开启HTTP代理集成,计划将全量请求转发至对接的下游HTTP端点,当前带路径参数的GET请求可正常完成转发,但POST请求的全部内容无法完整透传至下游端点。
配置调整步骤
- 配置集成请求的正文透传规则
进入对应POST路由的「集成请求」配置页,找到请求正文板块,选择透传原始请求正文选项。如果控制台显示旧版的“Passthrough Behavior”选项,需选择「当请求Content-Type不匹配任何已定义映射模板时,直接透传正文」,不要选择“从不透传”或自定义空映射模板。如果必须保留映射模板,需在模板内填写$input.body来原样输出请求正文,避免网关自动解析、拆写POST的form、JSON或二进制内容。 - 配置必要请求头的透传映射
在「集成请求」的HTTP请求头板块,添加头映射规则,将入站请求的Content-Type、Content-Length等和POST正文相关的头,完整映射到集成请求的对应头(映射值填写method.request.header.Content-Type即可)。默认状态下,API网关只会透传少数固定请求头,大部分自定义头(包括部分场景下的Content-Type)会被丢弃,导致下游无法正确解析收到的POST内容。 - 确认路由方法绑定正确
检查API路由配置,确认POST方法已正确绑定到对应的HTTP代理集成,没有出现POST请求被错误路由到其他后端、或直接被网关层拦截返回405方法不允许错误的情况。 - 排查冗余的参数映射规则
检查集成请求的路径参数、查询字符串映射配置,不要把POST正文内的字段硬绑定为路径参数或查询参数,避免网关把原本放在请求体里的内容转移到其他位置,导致下游接收到的POST正文缺失。 - 校验请求大小阈值
在API网关的全局设置页,确认最大请求正文限制值未被设置得过小,默认10MB的阈值可满足绝大多数POST请求的透传需求。如果POST内容超过该阈值,可适当上调限制值。
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

