Restsharp Xamarin iOS не соблюдает тайм-аут для RestSharp
Я использую RestSharp в Xamarin 4, чтобы сделать сетевой вызов с указанным таймаутом
var request = new RestRequest(url, Method.GET) { Timeout = 5000 };
var response = await _client.ExecuteGetTaskAsync(request);
return response;
Это работает, как и ожидалось в Android. Время ожидания составляет 5 секунд в случае отсутствия ответа. Тем не менее, на iOS, время ожидания вызова не удается. Это занимает ок. 60-75 секунд, чтобы истекло время ожидания.
Что-то мне не хватает или какая-то ошибка с Xamarin или restsharp?
1 ответ
Да, похоже, есть ошибка для асинхронных операций с клиентами Rest Для Xamarin iOS.
Тот же код отлично работает на Android . Мы протестировали следующий сценарий -: Запустить запрос с _client.ExecuteGetTaskAsync
, Когда запрос выполняется, отключите сеть. В iOS ожидающий вызов не возвращается немедленно. В Android он возвращается немедленно.
Я попытался установить readWriteTimeOut на iOS. И этот параметр работал на iOS. Но нужно проверить его побочные эффекты. Нам нужно проверить, влияет ли readwriteTimeout на работу в медленной сети.