当前位置: 首页 > 知识库问答 >
问题:

邮递员是否支持控制请求正文的格式?

冯泓
2023-03-14

我正在考虑使用Postman来自动化我对REST API的测试,并且只使用了几天。到目前为止,我已经为我的初始集合创建了足够数量的请求。我还在请求前脚本、测试和请求正文中使用了全局、环境和集合变量。我希望控制请求中包含哪些属性,而无需复制同一请求的多个副本以排除某些属性。

例如,我有一个 JSON 请求正文,如下所示:

{
    "Username": "{{Username}}",
    "Password": "{{Password}}",
    "AnotherProperty": ""
}

如果“OtherProperty”为空或为空,我想从请求中完全删除该属性。我只希望“另一个属性”包含在请求中,如果它有值。因此,如果为 null 或为空,则请求应显示为:

{
    "Username": "{{Username}}",
    "Password": "{{Password}}"
}

我发现完成此操作的唯一方法是保存单独的请求,包括集合中的属性和不包括属性,但是当请求中有许多属性时,这似乎对请求中的每个属性都没有效率。如果请求中包含的属性的值为空或空,是否可以控制它们?

共有1个答案

孟彦
2023-03-14

如果您有来自前一个请求的JSON请求体,您可以将它保存为一个环境变量。然后,您可以在主请求的请求前脚本中更新您计划发送的正文,或者在前面请求的测试脚本中更新正文。

然后在主请求中,您可以使用以下语法将正文作为原始发送。

请求前脚本示例:

// retrieve the environment variable
let potentialBody = JSON.parse(pm.environment.get("bodyToSend"));

// remove the property if empty
if (potentialBody.AnotherProperty === "") {
    delete potentialBody.AnotherProperty;
} 

// re-save the environment variable so it can be used in the primary request
pm.environment.set("bodyToSend", JSON.stringify(potentialBody));

正文示例(选择原始):

{{bodyToSend}}
 类似资料:
  • 我有一个邮递员预请求脚本添加一个HMAC密钥到一个请求。除非身体中有一个环境变量,否则这种方法很有效。所以如果我有下面的身体 当发送请求时将键值设置为sample时,正文包含以下内容 这是我所期望的。但是,在访问预请求脚本中的请求正文时, 我得到以下信息 我怎样才能获得变量被替换的主体,以便它是将被发送到服务器的内容?

  • 有人能帮助我如何使用以下参数发送POST请求吗: 我试着在《邮递员的身体》中发送一个带有以下参数的: 然而,在发送上述请求时,我得到的位置字符串为null。

  • 我在控制器[GET、POST和PUT]中编写了多个RESTendpoint。 接听和接听电话都很好。但当我试图点击来自Postman的PUT请求时,我的java控制器无法接收该请求。没有错误消息。响应主体为空。邮递员的回复代码是200。 以下是我的PUTendpoint,它无法从邮递员处获取请求: 下面是我的GETendpoint,它运行良好: 包含PUT请求标题和正文的邮递员URL为: 但是,系

  • 我使用Postman6.0发送HTTP请求。为了发送请求,我使用请求前脚本获取令牌并将其放入环境中,以便在后续请求中使用它。 下面的脚本不起作用,因为没有发送正文。下面的剧本有什么问题吗?

  • 我正试着在邮递员上打API。API正在服务器上工作,但我没有收到任何数据。以下是视觉图像: 它是回应我与“没有数据”和400错误的要求。

  • 我有一个带有更新方法的控制器。该方法应在RequestBody中获取产品,但这会导致请求错误。我和邮递员一起发了一封邮件。JSON作为原始JSON发送,请求内容类型为application/JSON。 正文中的JSON是 请求响应不良的原因是什么?JSON似乎格式化正确,当没有正文时调用更新方法。