【问题标题】:How to get the full value of an HTTP header in Apigee?如何在 Apigee 中获取 HTTP 标头的完整值?
【发布时间】:2014-11-09 05:53:33
【问题描述】:

我无法通过使用 JavaScript 的 Apigee 获取标头的完整值。仅返回部分标头值。

而不是得到:

Location: http://partners.api.skyscanner.net/apiservices/pricing/v1.0/c7b98b9cc3f14fb39b13645b0361bba7_ecilpojl_84BDF90D45EB6E187527B8F6DDD1B814/booking/16130-1409241445-CM,LA-4-10815-1409250800;10815-1410011920-LA,CM-4-16130-1410022313

我得到了逗号 (,) 之后的所有内容的价值:

Location: http://partners.api.skyscanner.net/apiservices/pricing/v1.0/c7b98b9cc3f14fb39b13645b0361bba7_ecilpojl_84BDF90D45EB6E187527B8F6DDD1B814/booking/16130-1409241445-CM

我都试过了:

var a = context.targetResponse.headers.Location;
var b = context.getVariable('response.header.Location');

这个问题有解决办法吗?

【问题讨论】:

    标签: javascript http-headers apigee


    【解决方案1】:

    我认为这是因为 Apigee 网关可能将标头中的逗号理解为多值标头。要获取逗号分隔的多值标头,请尝试:

    request.header.Location.values
    

    或者,您可以确保目标服务器在 Location 标头中发送 URL 编码值。这样,逗号就变成了 %2C。将其解析为单个值没有问题。

    【讨论】:

      【解决方案2】:

      你想试试 response.header.{header_name}.values 吗? 我相信这应该给你所有的价值。 让我知道结果如何。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-08
        • 2014-05-02
        • 2012-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-05
        • 2012-10-25
        相关资源
        最近更新 更多