cypress中如何处理plain/textPOST请求

How to handle the plain/text POST request in the cypress

我有一个邮递员集合,它是 POST 调用,请求正文是 plain/text 类型,我只想使用 cy.request 自动执行此操作,但我不确定如何通过 cy.request 正文部分中的测试正文,如果我 运行 下面的代码 returned 400 错误请求。

 cy.request({
        url: `${url}/user`,
        method: "POST",
   headers: {
            'Content-Type': 'plain/text'
        },
        body: {
            "confirmEmail": "true"
        }
    }).then(res =>{
        cy.task('log',"Email id "+res.body.emailAddress);
        return res.body;
    });
}

上面的请求return .json响应但是输入请求如果是文本格式,在邮递员工具中同样可以正常工作。

在 postman 工具中以以下格式传递请求正文并且工作正常。

confirmEmail=true

我的假设是在请求正文中我们的端点需要一个布尔值,但您传递的是一个字符串。因此,将 "confirmEmail": "true" 更改为 "confirmEmail": true 应该可行。

cy.request({
  url: `${url}/user`,
  method: 'POST',
  headers: {
    'Content-Type': 'plain/text',
  },
  body: {
    confirmEmail: true,
  },
}).then((res) => {
  cy.log(res.body.emailAddress) //prints email address from response body
})

如果您需要在 URL 中传递参数,您可以直接使用 qs

cy.request({
  url: `${url}/user`,
  method: 'POST',
  qs: {
    confirmEmail: true,
  },
  headers: {
    'Content-Type': 'plain/text',
  },
}).then((res) => {
  cy.log(res.body.emailAddress) //prints email address from response body
})