Задать вопрос
@BernadetteWolowitz
C# developer

Как получить в контроллере asp.net 5 web api переданный с клиента byte[]?

Хочу передать в контроллер byte[] и строку. Для этого использую MultipartFormDataContent. Но не могу в контроллере получить переданный массив байтов. При этом строку удается получить.

Код клиента:
public static void UploadFile()
        {
            Uri uploadEndpoint = new Uri("http://localhost:56010/api/values");
            var content = new MultipartFormDataContent();

            content.Add(new StringContent("any string"), "anystring");
            var fileContent = new ByteArrayContent(new byte[]{3,3,3,3});
fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
            fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("anybytes")
            {
                FileName = "Foo.txt"
            };
            content.Add(fileContent);

            var client = new HttpClient();
            HttpResponseMessage hrm = client.PostAsync(uploadEndpoint, content).Result;
}


В Controller в параметр AnyBytes приходит null. А хотелось бы увидеть свой массив.
[HttpPost]
        public IActionResult PostFile(byte[] anybytes)
        {
               //здесь anybytes == null, а должен быть переданный массив
                return new HttpOkResult();

        }
  • Вопрос задан
  • 517 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Fredcapit
Рекомендую ознакомиться с MediaTypeFormatter.
Классная вещь, когда нужно удобно получить данные сразу в нужном виде.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы