Postman Params中的JSON

yk9xbfzb  于 2023-11-18  发布在  Postman
关注(0)|答案(1)|浏览(123)

有没有一种方法可以在Postman Param中放置一个JSON值?
它似乎正在请求返回“400-bad request”,并且它不会接受json。
希望在“消息”中放入以下值:
{“default”:“消息。",“email”:“电子邮件消息。",“email-json”:“电子邮件消息(JSON)。",“http”:“HTTP消息。",“https”:“HTTPS消息。",“sqs”:“Amazon SQS消息。"}
有没有一个简单的模式来做到这一点?
What I'm trying to do

uz75evzq

uz75evzq1#

我对你的问题的理解是,你想在URL中发送JSON数据作为查询。
在这种情况下,有必要对数据进行编码,否则您将收到来自服务器的400错误。
您可以手动进行编码操作,但合理且正确的方法是使用 Postman 中的pre-request script选项卡。
借助预请求脚本和JavaScript语言,可以简单自动地获取请求参数并进行编码。
假设我们在Params选项卡中定义了一个名为Message的键,其值为JSON,如下所示:{"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做了一个简单的服务器,并测试了这段代码,一切似乎都很好。
您可以在this link中查看带有nodejs的服务器的示例代码,并自行运行以确保一切正确。

相关问题