Проблемы с загрузкой больших файлов с помощью HttpClient в приложении MAUI — неверный запрос (400)C#

Место общения программистов C#
Anonymous
Проблемы с загрузкой больших файлов с помощью HttpClient в приложении MAUI — неверный запрос (400)

Сообщение Anonymous »

У меня возникла проблема с загрузкой больших файлов (более нескольких МБ) с помощью HttpClient в приложении MAUI. Хотя тот же код сервера и клиента отлично работает в других средах, я сталкиваюсь с ошибкой 400 Bad Request при отправке больших файлов из приложения MAUI, работающего в симуляторе или на устройстве iOS.
Что я пробовал:
  • Рабочие сценарии:
  • Консольное приложение Windows: успешно загружает большие файлы.
  • Приложение Swift на Mac: успешно загружает большие файлы.
    < li>Почтальон: успешно загружает большие файлы на сервер.
  • Проблемные сценарии:
  • Симулятор MAUI: загрузка файлов размером более 700 байт завершается с ошибкой 400 Bad Request.
  • Приложение Xamarin для iOS: аналогичная проблема с 400 неверным запросом для файлов большего размера.
Сведения о конфигурации:
  • Инициализация HttpClient:

Код: Выделить всё

var configuration = NSUrlSessionConfiguration.DefaultSessionConfiguration;
configuration.AllowsCellularAccess = true;
configuration.AllowsConstrainedNetworkAccess = true;
configuration.AllowsExpensiveNetworkAccess = true;

var session = new NSUrlSessionHandler(configuration);
var client = new HttpClient(session);
  • Пример загрузки многостраничной формы:

Код: Выделить всё

public async Task UploadFileAsync(string url, string filePath)
{
using var client = new HttpClient();
using var content = new MultipartFormDataContent();

var fileContent = new StreamContent(File.OpenRead(filePath));
fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
content.Add(fileContent, "file", Path.GetFileName(filePath));

var response = await client.PostAsync(url, content);

if (response.IsSuccessStatusCode)
{
Console.WriteLine("Upload successful!");
}
else
{
Console.WriteLine($"Error: {response.StatusCode}");
}
}
  • Конфигурация безопасности транспорта приложений:

Код: Выделить всё

NSAppTransportSecurity

NSExceptionDomains

mycompany.com

NSIncludesSubdomains

NSTemporaryExceptionAllowsInsecureHTTPLoads

NSTemporaryExceptionMinimumTLSVersion
TLSv1.3



Шаги по устранению неполадок:
  • Проверка конфигурации: проверено, что параметры NSUrlSessionConfiguration подходят для больших загрузка файлов.
  • Проверка размера файла: успешно загружаются небольшие файлы, но возникают проблемы с файлами размером более 1 МБ.
Вопросы:
  • Что может быть причиной ошибки 400 Bad Request, особенно для файлов большего размера при использовании HttpClient в приложении MAUI?< /li>
    Существуют ли в NSUrlSessionHandler или NSUrlSessionConfiguration определенные конфигурации или параметры, которые мне следует настроить для обработки больших загрузок файлов?
  • Могут ли существовать какие-либо другие факторы окружающей среды или симулятор -конкретные проблемы, которые могут повлиять на возможность загрузки файлов большего размера?
Будем очень признательны за любые идеи и предложения!

Подробнее здесь: https://stackoverflow.com/questions/789 ... ng-bad-req

Вернуться в «C#»