如何在Apigee中获取HTTP头的全部值?

时间:2014-09-15 16:24:25

标签: javascript http-headers apigee

我无法使用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');

此问题是否有解决方法?

2 个答案:

答案 0 :(得分:1)

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

request.header.Location.values

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

答案 1 :(得分:0)

你想尝试response.header。{header_name} .values? 我认为应该给你所有的价值。 让我知道这是如何解决的。