[英]My POST request fails in c# but works perfectly fine in POSTMAN
[英]POST request from Postman fails model validation
在我的ASP.NET WebApi程序中,我有一個Author
模型:
public class Author
{
public int Id { get; set; }
[Required] public string Name { get; set; }
}
我還有一個AuthorsController
,具有PostAuthor(Author author)
方法:
// POST: api/Authors
[ResponseType(typeof(Author))]
public async Task<IHttpActionResult> PostAuthor(Author author)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// etc.
}
當我在單元測試中以編程方式發送POST
請求時,返回HTTP Status Code 201 Created
:
但是,當我使用Postman發送POST
請求時,我收到的是HTTP Status Code 400 Bad Request
:
如您所見,當我使用Postman
發送POST
請求時,傳遞給PostAuthor(Author author)
方法的參數為null
,因此模型驗證失敗:
我應該怎么做才能確保可以處理來自Postman
POST
請求?
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。
如果您以application / json的形式發送並且您的API以INBOUND JSON的形式等待,那么嘗試以JSON格式發送,例如
{
"Id":"6",
"Name":"P.G. Wodehouse"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.