尝试使用Content-Type application / x-www-form-urlencoded来访问API

我正在使用dotnet核心框架构建API restful服务器。 我添加了我的控制器并尝试使用邮递员到达终端。

我有2个问题

  • 问题1

    // POST api/user [HttpPost] [Authorize()] public async Task Post([FromBody]UserModel user) { } 

除非我通过键入raw json从postman发送请求作为application/json ,否则如果我使用application/x-www-form-urlencoded而无法访问此端点,那么我总是得到415不支持的媒体类型

  • 问题2

     // POST api/user/avatar [HttpPost] [Authorize()] [Route("avatar")] public async Task Post([FromBody]UserModel user, [FromBody]IFormFile file) { } 

我不知道如何使用邮递员达到这样的终点

在问题1中,您只需要使用FromForm属性而不是FromBody。 至于第二,我认为更容易编写简单的unit testing或使用Swashbuckle ,它有这样的请求的很好的接口

您可以使用这样的Consumes属性:

 // POST api/user [HttpPost, Consumes("application/x-www-form-urlencoded")] [Authorize()] public async Task Post([FromBody]UserModel user) { }