Отправка байтового массива в ASP.NET веб-API - PullRequest
0 голосов
/ 08 мая 2019

Я создаю веб-API для загрузки файлов через POST. Там нет необходимости для пользовательского интерфейса. Я отправляю массив байтов вместе с именем файла в формате JSON следующим образом.

{
  "FileName": "xxxyyyzzz.pdf",
  "FileType": "Pricing",
  "FileID": 12457,
  "ContentInByteArray": 
  "JVBERi0xLjMNCiXi48QoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==",
  "ExceptionMessage": ""
}

Содержимое файла фактически преобразуется в байтовый массив и устанавливается на "ContentInByteArray". Это хороший подход. Или мне нужна импровизация?

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 08 мая 2019

Вы используете массив send byte[], когда вам нужно содержимое файла или изображения, или он может быть содержимым токена и обрабатывать их в API.

 var request = new SomePostRequest
        {
            Id = 1,
            Content = File.ReadAllBytes(filename); // read content file to byte[]
        };

        jsonSerializer.Serialize(bson, request);

        var client = new HttpClient
        {
            BaseAddress = new Uri("http://www.server.com")
        };

        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/bson"));

        var byteArrayContent = new ByteArrayContent(stream.ToArray());
        byteArrayContent.Headers.ContentType = new MediaTypeHeaderValue("application/bson");

        var result = await client.PostAsync(
                "api/upload", byteArrayContent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...