如何测试在postman中使用frombody收到的两个字符串?

jtoj6r0c  于 2022-11-07  发布在  Postman
关注(0)|答案(2)|浏览(169)

我有一个httppost方法,这个方法执行忘记密码的过程,为此,它获取用户的邮件和新输入的密码,我收到它们作为FromBody,但在测试 Postman 时,我得到了以下错误。我如何测试这些?

[HttpPost("forgetuserpassword")]
    public async Task<IActionResult> forgetUserPassword([FromBody]string user_mail,string new_password)
    {
        return Ok( await _userService.ForgetPassword(user_mail, new_password));

    }

我有另一个httppost方法,我用frombody得到的,但我只得到一个值,当我这样测试postmande时,它能工作。然而,当我对post方法做同样的操作,得到这两个字符串时,它给出了一个错误。
这就是我在postman中测试post方法的方法,在这里我用frombody得到一个字符串值。

这是我如何尝试我在上面分享的代码在postman.逻辑上它应该是这样的

sqserrrh

sqserrrh1#

您的第二个帖子正文不是有效的JSON,请尝试:

[
  "string1",
  "string2"
]

如果要允许接受多个字符串,请将方法签名更新为:

public async Task<IActionResult> forgetUserPassword([FromBody]List<string> strings)

但是,我建议在这种情况下使用Object,如下所示:

public ForgotPasswordObject 
{ 
    public string Email {get;set;}
    public string NewPassword {get;set;}
}

然后,您的方法可能如下所示:

public async Task<IActionResult> forgetUserPassword([FromBody]ForgotPasswordObject forgotPassword)
{
    return Ok( await _userService.ForgetPassword(forgotPassword.Email, forgotPassword.NewPassword));
}

最后,JSON的结构如下所示:

{
  "email": "myemail@whatever.com",
  "newPassword":"1234"
}
xcitsw88

xcitsw882#

您必须使用正确的JSON格式才能使用多个字段。

{
    "Email": "michael@gmail.com",
    "NewPassword": "1234567890"
}

或者

[
    "michael@gmail.com",
    "1234567890"
]

如果是JSON对象,则使用{};如果是JSON数组,则使用[]

相关问题