Как передать файл по http

Хелп, пожалуйста, я тут столкнулся с проблемой передачи файла по http. Сначала я сделал, что у меня есть две апи, первая отправляет сериализованный массив байтов, другая принимает этот массив и это всё работало до того момента пока я не заметил ошибку, которая заключалась в том, что тело запроса слишком большое. Сейчас я пришёл к тому, что следует отправлять поток, что должна принимать принимающая файл апишка, поток или массив байтов? Отправляю следующим образом, в ответе получаю 415 ошибку, в сам метод контроллера принимающей запрос API даже не попадаю, что и логично принимающий сервер не знает о таком типе как Stream

public async Task<UploadedFile?> CreateDocumentAsync
(string extension, Stream file, CancellationToken cancellationToken = default)
{
    using (var content = new MultipartFormDataContent())
    {    
         content.Add(new StringContent(extension,  Encoding.UTF8), "extension");
         content.Add(new StreamContent(file));

         content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

         using (var response = await _client.PostAsync("api/File/CreateDocument", content, cancellationToken))
         {
             response.EnsureSuccessStatusCode();

             string responseString = await response.Content.ReadAsStringAsync(cancellationToken);

             return JsonConvert.DeserializeObject<UploadedFile>(responseString);
         }
     }
 }

[HttpPost]
[Route("CreateDocument")]
public async Task<IActionResult> CreateAsync(CreateDocumentRequest request, CancellationToken cancellationToken = default)
{
     StaticFile staticFile = await SaveDocumentAsync(request.Extension, request.File, cancellationToken);

     CreateFileResponse response = new()
     {
         Id = staticFile.Id,
         Path = staticFile.Path
      };

      return Ok(response);
}

public class CreateDocumentRequest
{
    public string Extension { get; set; }

    public byte[] File { get; set; }
}

Ответы (0 шт):