Не передается byte[] в controller с помощью HttpClient
Когда пытаюсь передать через MultipartFormDataContent 2 значения, передается только String, а массив байтов передается пустым.
var client = new HttpClient();
client.BaseAddress = new Uri("https://localhost:44395");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var stringContent = new StringContent("1");
var binaryContent = new ByteArrayContent(new byte[] { 1, 2, 3 });
var content = new MultipartFormDataContent();
content.Add(stringContent, "id");
content.Add(binaryContent, "content");
var result = await client.PostAsync("/Incoming", content);
string resultContent1 = await result.Content.ReadAsStringAsync();
Console.WriteLine(result);
Console.WriteLine(resultContent1);
Controller:
[Route("Incoming")]
public async Task<string> PostIncomingData(SomePostRequest requestData)
{
return Convert.ToString(requestData.Id)+ Convert.ToString(requestData.Content);
}
SomePostRequest.cs
public sealed class SomePostRequest
{
public int Id { get; set; }
public byte[] Content { get; set; }
}
Запрос наполовину выполняется, он выводит мне id, но content не выводит. Просто ничего вместо content.
Перерыл множество форумов, в том числе и англоязычных, все там используют либо WebApi на сервере, либо старый WebClient на клиенте.... Я вроде переделал под Asp.Net Core MVC, но работать это все не хочет. Может есть какой-либо более простой способ передать массив байтов на контроллер? Я хочу именно используя HttpClient.