В какой-то момент мы обнаружили, что все запросы в нашем приложении имеют тайм-аут 60 секунд на iOS, хотя мы установили значение по умолчанию для HTTP-фреймворка, которое мы используем, как 3 минуты. Я попробовал следующий фрагмент кода, чтобы выяснить, есть ли проблема в библиотеке:
try
{
using (var http = new HttpClient())
{
http.Timeout = TimeSpan.FromMinutes(1.5);
await http.GetAsync("https://httpstat.us/200?sleep=70000");
}
}
catch (Exception ex)
{
}
Этот код завершается ошибкой с исключением тайм-аута, хотя тайм-аут установлен как 90 секунд, и запрос идет в течение 70 секунд. Оказывается, он не отменяет тайм-аут по умолчанию 60 секунд. Тот же код хорошо работает на новом проекте.
В файле проекта у нас есть <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>