1

我正在为我的服务使用 Google API Gateway(提供测试版)。面对名称中带有下划线 ( _) 的 API 标头的 API 请求问题,例如 CUSTOM_HEADER_NAME。API 网关会400, Bad Request针对此类请求抛出。

当自定义标题有连字符 ( -) 而不是下划线时,API 可以正常工作,例如 CUSTOM-HEADER-NAME。

它看起来是 API 网关使用的 Web 服务器上的配置问题,它禁止带有下划线的标头 -为什么 HTTP 服务器禁止在 HTTP 标头名称中使用下划线

由于我无法控制 Google API Gateway 的 Web 服务器,是否有解决此问题并允许带有下划线的标头的解决方法。

注意:该服务是迁移到 GCP 的旧版应用程序。所以我真的没有更新标头格式的选项,因为这意味着使用这个 API 更新所有客户端。

4

2 回答 2

0

我已经复制了您在 API Gateway快速入门之后提到的行为,然后在像这样的标头中发出带有下划线的请求curl -H "MY_HEADER: XXX" https://API-GATEWAY-URL.。我得到了和你一样的结果。因此,我在问题跟踪器中打开了一个功能请求,以便可以对其进行跟踪。

您可能有兴趣检查其他选项,例如 Cloud Endpoints 或负载均衡器,以检查它们是否可以同时作为替代方案。

更新:现在支持使用下划线标题,可以通过添加此处--underscore_in_headers记录的标志来实现。

于 2020-12-10T15:40:18.447 回答
0

为了在此处结束循环,我与 google 创建了一张支持票,用于支持带有下划线的标题。他们有义务接受请求,并且现在可以开箱即用地进行更改。

API Gateway 用户无需进行任何更改。

于 2021-03-03T10:46:40.710 回答