2015-04-20 37 views
0

我使用Xamarin連接到Android和iOS上的Azure移動服務。當我們有良好的移動連接時,一切都很好。但是,當移動連接速度較慢時,60秒的默認超時會對我們的用戶造成負面影響,因爲可能需要很長時間才能向用戶表明他們的操作尚未完成。減少MobileServiceClient InvokeAPI超時

我的問題是如何減少InvokeAPI和MobileServiceClient的超時?

回答

0

您必須重寫Android和iOS HttpClient的默認超時。 無法在您的共享代碼(PCL)中設置超時。

+0

謝謝。但是,如何將一個httpclient對象傳遞給MobileServicesClient?我們的代碼構造的本機處理程序並通過在:'Mvx.RegisterType (()=> \t \t \t \t \t { \t \t \t \t \t \t ICustomHttpClient customHttpClient = Mvx.Resolve (); \t \t \t \t \t \t HttpMessageHandler處理機= customHttpClient.GetNativeHandler(); \t \t \t \t \t \t HttpMessageHandler [] handlerArray = new HttpMessageHandler [] {handler}; \t \t \t \t \t \t返回新MobileServiceClient(ApplicationConstants.ApplicationUri,ApplicationConstants.ApplicationKey,handlerArray); \t \t \t \t \t} \t \t \t \t);' – pricimus

+0

你不能把它直接注入MobileServiceClient,因爲它是一個內部類(https://github.com/Azure/azure-mobile-services/blob/84e7d3c0a896d4434cf3da0b03f7cd4ea1d3cd83 /sdk/Managed/src/Microsoft.WindowsAzure.MobileServices/Http/MobileServiceHttpClient.cs)。 MobileServiceClient使用特定於平臺的HttpClient。您必須覆蓋其默認的超時設置。否則,在InvokeApiAsync中設置任務超時。 – thorsten

+0

我想我的問題是,你如何得到一個特定於平臺的httpclient來覆蓋這些設置? – pricimus