Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postman URL编码邮递员变量?_Postman - Fatal编程技术网

Postman URL编码邮递员变量?

Postman URL编码邮递员变量?,postman,Postman,我使用Postman进行RESTAPI测试,并使用全局变量参数化测试 我应该在GET请求中输入一个电话号码:/path/GET?phone={{phone},但电话号码中的前导+符号被解释为空格 Postman中URL编码全局变量的语法是什么?是否可以对URL中的变量运行JSencodeURIComponent() var encoded=encodeURIComponent({{{phone number}}); 或 var encoded=encodeURIComponent(pm.env

我使用Postman进行RESTAPI测试,并使用全局变量参数化测试

我应该在GET请求中输入一个电话号码:
/path/GET?phone={{phone}
,但电话号码中的前导
+
符号被解释为空格


Postman中URL编码全局变量的语法是什么?是否可以对URL中的变量运行JS
encodeURIComponent()

var encoded=encodeURIComponent({{{phone number}});

var encoded=encodeURIComponent(pm.environment.get(“电话号码”);
若要继续,请使用:

pm.environment.set(“编码电话号码”,编码);

并将URL设置为
/path/get?phone={{encoded phone number}
技巧是在预请求脚本中获取环境变量,然后在编码后进行设置

    var encoded = encodeURIComponent(pm.environment.get("phone"));
    pm.environment.set("encoded phone number", encoded);

单击“参数”按钮打开URL参数的数据编辑器。当您添加键值对时,Postman将组合上面查询字符串中的所有内容。如果您的URL已经有参数-例如,如果您正在粘贴来自其他来源的URL。邮递员会自动将URL拆分为成对的URL。
我迟到了,但仍然值得:

只需突出显示并右键单击要编码的url部分。选择
encodeURIComponent

就这样


我遇到了这个问题,想找到一个类似问题的答案。对我来说,变量是一个JSON对象。我需要命中的端点期望一个对象列表作为查询参数,我无法将其更改为请求主体

尽管有些答案很有帮助,我最终还是想出了一个综合解决方案。此外,其他答案中给出的一些代码已经过时,因为Postman多年来更新了他们的API,所以它使用的方法适用于7.22.1

pm.environment.set("basicJSON", '[{"key1":"value1","key2":"value2"},{"key1":"value1","key2":"value2"}]')
var encoded = encodedURIComponent(pm.environment.get("basicJSON"))
pm.environment.set("encodedJSON", encoded)

此解决方案要求
basicJSON
encodejson
都作为环境变量存在。但对我来说重要的是编辑对象的方便性。我不想不断地解码/编码来改变值,也不想打开环境变量对话框。另外,注意对象周围的单引号也很重要。排除它们或使用双引号会导致邮递员发送类似于
“[object object]”
的内容,这对于需要实际JSON的端点来说是无用的。

只是Mohhamad Hasham答案的快捷方式

您可以在参数值字段中直接编码和解码:
我在查询参数中的大括号
{
}
也有类似的问题。
通过关闭以下设置,它开始为我工作


这并不能回答这个问题。这些文档描述了如何添加urlencoded表单参数,而问题是关于URLEncodeding如何从环境变量中获取参数集。我打开以在路径参数设置中添加一个标志。这是最好的方法。简单地说,最好的方法问题是关于变量的,即{{defined_someplace_else}之类的内容。您不能这样编码它们,因为需要编码变量中的值,而不是变量引用。这是静态参数的最佳方式。如果您在该位置的变量上尝试它,它会对将其标识为变量的大括号进行编码,而不是对变量的内容进行编码。没有回答这个问题(但对很多找到这个答案的人来说仍然很有帮助)。这不会影响其余的请求吗?它会被破坏吗?我不理解这个问题。它没有回答从变量引用对内容进行编码的问题。
{var}
。对静态文本进行编码没有问题。@gavenkoa你是对的-我被帮助我的流行答案误导了。