[英]POST request from Postman fails model validation
Inside my ASP.NET WebApi program, I have an Author
model: 在我的ASP.NET WebApi程序中,我有一个
Author
模型:
public class Author
{
public int Id { get; set; }
[Required] public string Name { get; set; }
}
I also have an AuthorsController
, with a PostAuthor(Author author)
method: 我还有一个
AuthorsController
,具有PostAuthor(Author author)
方法:
// POST: api/Authors
[ResponseType(typeof(Author))]
public async Task<IHttpActionResult> PostAuthor(Author author)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// etc.
}
When I send a POST
request programmatically inside my unit tests, HTTP Status Code 201 Created
is returned: 当我在单元测试中以编程方式发送
POST
请求时,返回HTTP Status Code 201 Created
:
However, when I send a POST
request using Postman , I receive HTTP Status Code 400 Bad Request
instead: 但是,当我使用Postman发送
POST
请求时,我收到的是HTTP Status Code 400 Bad Request
:
As you can see, when I send a POST
request using Postman
, the argument passed into the PostAuthor(Author author)
method is null
, and model validation fails as a result: 如您所见,当我使用
Postman
发送POST
请求时,传递给PostAuthor(Author author)
方法的参数为null
,因此模型验证失败:
What should I do to ensure that POST
requests from Postman
can be processed? 我应该怎么做才能确保可以处理来自
Postman
POST
请求?
Couple of changes: define it as HttpPost
and use FromBody
like FromBody
更改:将其定义为HttpPost
并使用FromBody
这样
// POST: api/Authors
[HttpPost]
[ResponseType(typeof(Author))]
public async Task<IHttpActionResult> PostAuthor([FromBody] Author author)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// etc.
}
在邮递员正文中用=替换=,毕竟是JSON。
If you send in application/json and your API wait as INBOUND JSON, so try to send in JSON format, something like 如果您以application / json的形式发送并且您的API以INBOUND JSON的形式等待,那么尝试以JSON格式发送,例如
{
"Id":"6",
"Name":"P.G. Wodehouse"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.