如何接收带有application-json内容类型和边界的正文附件?

时间:2019-04-23 12:29:33

标签: c# asp.net-core model-view-controller .net-core

由于客户端,我们的API应该替换其他API,而无需进行很多更改,但是以前的API会以某种形式接收数据,而我无法在.net core中进行复制。在这种情况下,ModelState毕竟无效。

请参阅客户要求。

我们正在使用.net core 2.0 mvc

我已经尝试将主体作为IFormFile接受,但是由于application / json内容类型而没有成功。我也尝试将body作为FromForm属性参数,但也没有成功。

我的控制器:

    [Consumes("application/json")]
    [HttpPost("product/set")]
    public async Task<IActionResult> CreateProduct([FromBody]IEnumerable<CreateProductInput> input)
    {
        // Some code and returns.
    }

CreateProductInput:

   public class CreateProductInput
   {
       [Required]
       [StringLength(20, ErrorMessage = "{0} cannot exceed {1} characters")]
       public string id { get; set; }

       [StringLength(20, ErrorMessage = "{0} cannot exceed {1} characters")]
       public string name { get; set; }
    }

但是客户请求看起来像这样:

标题:

    Content-Type: application/json; charset=UTF-8; boundary=--------------------------xxxxxxxxxxxxxxx
    Content-Length: 1931

身体

     --------------------------xxxxxxxxxxxxxxx
     Content-Disposition: attachment; name="data_file"

     [
            {
                           "id": "A1",
                           "name": "AAA",

            }, {
                           "id": "A2",
                           "name": "BBB",

            }, {
                           "id": "A3",
                           "name": "CCC",
            }
      ]

      --------------------------xxxxxxxxxxxxxxx--

是否可以使用application/json内容类型以及如何接收这种json附件?

0 个答案:

没有答案