在Postman环境中限制返回头中的字符数

3
我正在使用一个API集,需要获取Session Key并将其用于授权头以进行后续对服务的调用。应在Header中添加名称为X-CardConnect-SessionKey的值,例如如下所示。一旦获得,将来的服务调用必须包含分号前的前20位数字。请查看下面的示例图片。

Postman图片

这是我接收到的信息:
X-CardConnect-SessionKey →9ffcd7dc737f4b9fbdccb299b9c55f4b;expires=2017-12-28T20:54:19.652Z

这是我需要的内容:
X-CardConnect-SessionKey →9ffcd7dc737f4b9fbdccb299b9c55f4b

在Postman中,我正在使用以下内容将Session Key值解析到我的环境中:
var data = responseHeaders
postman.setEnvironmentVariable ("X-CardConnect-SessionKey", data["X-
CardConnect-SessionKey"])

通常情况下,当我只需要前20个数字时,整个字符串会被插入到环境中。有没有一种方法可以限制字符数量,只返回前20个数字?

谢谢!

2个回答

1
你可以使用本地JS split 函数来拆分值,或者查看使用Lodash _.split() 函数之一。
var data = "9ffcd7dc737f4b9fbdccb299b9c55f4b;expires=2017-12-
28T20:54:19.652Z"

postman.setEnvironmentVariable("test", data.split(';',1)); 

或者说你需要类似这样的东西:
var data = responseHeaders
postman.setEnvironmentVariable("X-CardConnect-SessionKey", data.X-
CardConnect-SessionKey.split(';',1))

谢谢,丹尼。我会试一下的。 - Robert Cowie
@RobertCowie 试一下,看看它是否符合你的需求。 - Danny Dainton
还没有机会测试它,只是凭记忆编写的,所以第一次可能无法正常工作。 - Danny Dainton

0

以下是解决方法:

const data = responseHeaders;
postman.setEnvironmentVariable ("X-CardConnect-SessionKey", data["X-CardConnect-SessionKey"]); 
const sessionheader = data["X-CardConnect-SessionKey"];
postman.setEnvironmentVariable ("X-CardConnect-SessionKey",  sessionheader.substring(0, 32));

很酷,你需要创建所有变量吗?你可能可以在一行中完成所有操作。查看pm.* API中的pm.response.headers(),它是较新版本的一部分。你正在使用的语法是旧风格的,不久将被淘汰。 - Danny Dainton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接