我有一个Android Phonegap/Cordova应用程序,它与ASP.NET MVC Web应用程序交互.我试图检测服务器端是否从浏览器或我的Phonegap/Cordova应用程序加载网页.
我考虑过几种方法:
我在用户代理字符串更改时做错了吗?或者有另一种方法可以实现这一目标吗?
我想使用 Polly 执行以下操作:尝试超时时间很短的请求。如果失败,请使用更长的超时时间重试。
我看到Retry
可以这样访问retryCount
:
Policy
.Handle<SomeExceptionType>()
.Retry(3, (exception, retryCount, context) =>
{
// do something
});
Run Code Online (Sandbox Code Playgroud)
我看到Timeout
可以指定一个int
or TimeSpan
,如下所示:
Policy.Timeout(TimeSpan.FromMilliseconds(2500))
Run Code Online (Sandbox Code Playgroud)
我什至看到您可以将函数传递给超时,如下所示:
Policy.Timeout(() => myTimeoutProvider)) // Func<TimeSpan> myTimeoutProvider
Run Code Online (Sandbox Code Playgroud)
该Func
选项似乎最有前途,但它可以从哪里访问重试计数?将状态保持在策略之外是很诱人的,但是如果我想以线程安全的方式共享策略,这很危险。
有什么建议吗?