postman - PostMan:对于巨大的数据请求,我希望以外部 JSON 文件的形式输入,并且确实在每次迭代时重新放置整个主体
问题描述
应用详情:
Win7 / x64的邮递员
问题报告:
- 对于巨大的数据请求,我希望以外部 JSON 文件的形式输入,并且确实在每次迭代时重新放置整个主体。
- 预期行为:请求正文,当我从 Collections 运行时,应该能够用我的变量替换
- 截图:附上
重现步骤
我在 Collection runner 中的 Json 文件作为输入数据:
[{ "rename": {"AssetId": 5496,"NewName": "API-CK9-2st"}, "addfolderto": {"FolderId": 5456,"FolderName": "API-CK1"} }]
在我的预请求脚本中:
var envRename = pm.iterationData.get("rename"); pm.environment.set("rename", envRename );
在我的身体中,我试图直接使用环境。替换正文的变量,例如:
{{rename}}
然后在运行脚本后,我的请求正文被替换为:
Request Body:"[object Object]"
而不是我的输入 json 。
截图链接:
请帮我解决这个问题,对于巨大的数据请求,我希望以外部 JSON 文件的形式输入,并且确实在每次迭代时重新放置整个主体。
解决方案
您可以对变量使用JSON.stringify()函数iterationData
,然后使用{{...}}
请求正文中的语法。
这是一个在本地使用不同 API 但使用相同方法的示例,它应该可以满足您的需要。
如果您不iterationData
使用函数包装变量JSON.stringify()
,您将看到[object Object]
作为 POST 请求正文数据发送:
这是我的解决方案:
将JSON.stringify()
函数添加到Pre-Request Script
选项卡并像这样包装pm.interationData.get('my_object')
它:
然后将{{new_object}}
语法变量添加到请求正文中,这个值现在已经被 JSON 字符串化了:
在 中Collection Runner
,选择您要使用的数据文件。我正在使用带有key
“my_object”的 JSON 文件,并将其value
作为 JSON 对象而不是单个值 - 您可以在此处查看此文件的预览:
当 Collection 或 Request 从 运行时Collection Runner
,它获取这个对象值并在请求正文中使用它。由于我在 中使用了该JSON.stringify()
功能Pre-Request Script
,因此它不会像[object Object]
我们在开始时看到的那样通过。
推荐阅读
- html - NSAttributedString 到 HTML 目标-c
- c# - Python itertools C# 等效
- javascript - 如何在角度 4 的单个 api 请求中上传文件和表单数据
- c# - 意外修改字典
- javascript - 排队异步请求
- python-3.x - 将列标题转换为新列并保留每列的值
- asp.net-mvc - 当我尝试修改 MVC 中的两个表时出现并发异常
- openmaptiles - 如何增量更新整个图块?
- javascript - 在 nuxtServerInit 操作中使用 axios 进行 http 调用
- elasticsearch - 如何为文件中的不同结构行配置 Logstash.conf?