我有一个Xamarin Forms应用程序,它由PCL项目,iOS和Android组成。我已经为Google和Facebook实现了本机登录,它们可以正常工作,并且它们返回身份验证令牌。但是,一旦收到令牌,我就会致电
var user = Client.LoginAsync(Google, token);
请求通过,但有时请求可能需要15秒以上的时间!我的LoginAsync调用中有90%可能需要15秒钟以上的时间。其余的10%实际上工作很快。我尝试在iOS项目而不是PCL项目中进行调用,但是结果相同。我搜索了与AzureMobileClient相关的性能问题,但未发现任何问题。一切似乎都是正确的,因为最终该请求返回了,但是15秒钟以上的请求正在终止我的登录过程! Facebook也是如此。有什么建议吗?
答案 0 :(得分:1)
整个应用中的请求花费了很长时间。我用MobileServiceClient换成了HttpClient,此后一切都很好。我不确定MobileServiceClient会增加哪种类型的开销,但是我的应用程序从无法使用变成了快速闪电般的使用。
var messageHandler = new NativeMessageHandler()
{
Timeout = new TimeSpan(0, 0, 8),
EnableUntrustedCertificates = true,
DisableCaching = true
};
client = new HttpClient(messageHandler);
var uri = new Uri("example");
client.BaseAddress = uri;
client.MaxResponseContentBufferSize = 256000;