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

时间:2017-02-28 13:42:32

标签: c# visual-studio api .net-core postman

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

我有2个问题

  • 问题1

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

除非我通过输入原始json从邮递员发送application/json请求,否则如果我使用application/x-www-form-urlencoded而无法获得415不支持的媒体类型,则无法访问此端点

  • 问题2

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

我不知道如何使用邮递员

来达到这样的终点

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

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

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