Уменьшить тайм-аут MobileServiceClient InvokeAPI

Я использую Xamarin для подключения к мобильным службам Azure на Android и iOS. Когда у нас есть хорошая мобильная связь, все в порядке. Однако, когда мобильное соединение медленное, тайм-аут по умолчанию, равный 60 секундам, оказывает негативное влияние на наших пользователей, поскольку это может занять столько времени, чтобы сообщить пользователю, что его действие не завершено.

Мой вопрос: как уменьшить время ожидания для InvokeAPI и MobileServiceClient?


person edp    schedule 20.04.2015    source источник


Ответы (1)


Вы должны переопределить тайм-аут по умолчанию для Android и iOS HttpClient. Невозможно установить время ожидания в вашем общем коде (PCL).

person thorsten    schedule 20.04.2015
comment
Спасибо. Но как передать объект httpclient в MobileServicesClient? Наш код создает собственный обработчик и передает его: Mvx.RegisterType<IMobileServiceClient>(() => { ICustomHttpClient customHttpClient = Mvx.Resolve<ICustomHttpClient> (); HttpMessageHandler handler = customHttpClient.GetNativeHandler(); HttpMessageHandler[] handlerArray = new HttpMessageHandler[] { handler }; return new MobileServiceClient(ApplicationConstants.ApplicationUri, ApplicationConstants.ApplicationKey, handlerArray); } ); - person edp; 20.04.2015
comment
Вы не можете внедрить его непосредственно в MobileServiceClient, так как это внутренний класс (github.com/Azure/azure-mobile-services/blob/). MobileServiceClient использует специфичный для платформы HttpClient. Вы должны переопределить их настройки времени ожидания по умолчанию. В противном случае установите время ожидания задачи в InvokeApiAsync. - person thorsten; 21.04.2015
comment
Я предполагаю, что мой вопрос заключается в том, как вы получаете дескриптор httpclient для конкретной платформы, чтобы переопределить эти настройки? - person edp; 21.04.2015
comment
В этом блоге должно быть описано, как получить информацию о тайм-ауте: blogs.msdn.com/b/henrikn/archive/2012/08/07/ Надеюсь, это поможет! Хенрик - person Henrik Frystyk Nielsen; 22.04.2015