【问题标题】:Limit Characters returned in Header within Postman Environment限制 Postman 环境中 Header 中返回的字符
【发布时间】:2018-06-09 09:38:28
【问题描述】:

我正在使用一个 API 集,该集需要下拉会话密钥并在授权标头中用于后续调用服务。要添加到 Header 的值是 X-CardConnect-SessionKey 参见下面的示例。前 20 位数字,分号前面的所有内容,一旦获得,就需要包含在未来对服务的调用中。

这就是我得到的 -->

X-CardConnect-SessionKey →9ffcd7dc737f4b9fbdccb299b9c55f4b;expires=2017-12-28T20:54:19.652Z

这是我需要的:

X-CardConnect-SessionKey →9ffcd7dc737f4b9fbdccb299b9c55f4b

在 Postman 中,我使用以下内容将会话密钥值解析到我的环境中:

var data = responseHeaders
postman.setEnvironmentVariable ("X-CardConnect-SessionKey", data["X-
CardConnect-SessionKey"])

当我只需要前 20 位数字时,自然地,完整的字符串被插入到环境中。有没有办法限制字符限制,以便只返回前 20 位数字?

谢谢!

【问题讨论】:

    标签: java postman postman-collection-runner


    【解决方案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))
    

    【讨论】:

    • 泰丹尼。我试试看。
    • @RobertCowie 试试看它是否适合您的需求
    • 没有机会从内存中测试它,所以它可能第一次无法工作。
    【解决方案2】:

    能够通过以下方式解决:

    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(),它是较新版本的一部分。您使用的语法是旧式的,很快就会被删除。
    猜你喜欢
    • 2018-09-30
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多