Как получить вложение тела с типом контента application-json и границей? - PullRequest
1 голос
/ 23 апреля 2019

Наш API должен заменить чужой API без особых изменений из-за клиентов, но предыдущий API получал данные в той или иной форме, которые я не могу воспроизвести в ядре .net. В этом случае ModelState недействителен.

Пожалуйста, смотрите запрос клиента.

Мы используем .NET Core 2.0 MVC

Я уже пытался принять тело как IFormFile, но безуспешно из-за типа содержимого application / json. Также я попытался принять тело в качестве параметра атрибута 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

Body:

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

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

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

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

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

Можно ли получить этот тип json-вложения с типом контента application/json и как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...