我必须在我的 Postman 预请求脚本中为 web api 调用创建一个身份验证哈希。我的集合将服务 URL 存储在一个名为 的集合级变量baseUrl
中。这个变量的值为http://api-server.local
不幸的是,baseUrl
当我尝试从pm.request.url
. 我在我的预请求脚本{{baseUrl}}
的host
属性中取回了一个值。pm.request.url
我的猜测是评估发生在请求创建管道的后期。
因此,我在我的集合中添加了一个新变量baseUrlHost
,其值设置为api-server.local
. 我打算使用这个新变量在我的身份验证哈希中正确设置主机。
与其做大量的字符串替换,我更愿意创建一个新Url
对象。根据 Postman文档,可以使用 Url Node.js 模块。但是,当我创建一个Url
对象时,它大部分都是空属性。
var Url = require('url').Url;
//another variation of the above...
//const {Url } = require('url')
var collectionBaseUrl = pm.collectionVariables.get("baseUrl")
console.log('base url from collection: ', collectionBaseUrl);
//base url from collection should be : http://api-server.local
var baseUrl = new Url(collectionBaseUrl);
console.log('base url ctor: ', baseUrl);
这是输出...
base url ctor:
{protocol: null, slashes: null, auth: null…}
protocol: null
slashes: null
auth: null
host: null
port: null
hostname: null
hash: null
search: null
query: null
pathname: null
path: null
href: null
我应该做些什么来正确初始化 Url 对象?