提问人:Gilad 提问时间:11/13/2023 最后编辑:Gilad 更新时间:11/13/2023 访问量:44
Postman Params 中的 Json
Json in Postman Params
问:
有没有办法将 json 值放入 Postman 参数中?
似乎它正在发出返回“400-bad request”的请求,并且它不会接受 json。
希望在“Message”中输入以下值:
{“default”:“消息”,“email”:“电子邮件的消息”,“email-json”:“电子邮件的消息 (JSON).”,“http”:“HTTP 消息”,“https”:“HTTPS 的消息”,“sqs”:“Amazon SQS 的消息。
有没有一个简单的模式来做到这一点?
答:
我对您的问题的理解是,您希望将JSON数据作为URL中的查询发送。
在这种情况下,有必要对数据进行编码,否则您将收到来自服务器的 400 错误。
您可以手动执行编码操作,但合乎逻辑且正确的方法是使用 postman 中的 pre-request script 选项卡。
借助预请求脚本和 JavaScript 语言,您可以以简单、自动的方式获取和编码请求参数。
假设我们在 Params 选项卡中定义了一个名为 JSON,其值为 JSON,如下所示:Message
{"default":"A message.","email":"A message for email.","email-json":"A message for email (JSON).","http":"A message for HTTP. ","https":"A message for HTTPS.","sqs":"A message for Amazon SQS."}
现在,通过在预请求脚本部分添加以下代码,您可以自动接收参数,然后对其进行编码:
// Get all query parameters
const queryParams = pm.request.url.query.all();
// Encode each query parameter value
queryParams.forEach((param) => {
param.value = encodeURIComponent(param.value);
pm.request.url.removeQueryParams(param.key);
pm.request.url.addQueryParams(param);
});
这将发送如下请求:
Message=%7B%22default%22%3A%22A%20message.%22%2C%22email%22%3A%22A%20message%20for%20email.%22%2C%22email-json%22%3A%22A%20message%20for%20email%20(JSON).%22%2C%22http%22%3A%22A%20message%20for%20HTTP.%22%2C%22https%22%3A%22A%20message%20for%20HTTPS.%22%2C%22sqs%22%3A%22A%20message%20for%20Amazon%20SQS.%22%7D
服务器可以很容易地接收和处理这些信息。
为了确保一切正常,我用nodejs制作了一个简单的服务器并测试了这段代码,一切似乎都很好。
您可以在此链接中看到带有 nodejs 的服务器示例代码,并自行运行以确保一切正确。
评论