小编Dan*_*ion的帖子

自定义用户代理字符串或标头,无需修改cordova库

我有一个Android Phonegap/Cordova应用程序,它与ASP.NET MVC Web应用程序交互.我试图检测服务器端是否从浏览器或我的Phonegap/Cordova应用程序加载网页.

我考虑过几种方法:

  1. 更改用户代理字符串.我发现这个stackoverflow链接描述了一种使其工作的方法.不幸的是,它对我不起作用.请求对象没有自定义用户代理字符串.
  2. 包含自定义标头值.这可以通过修改cordova库来完成(请参阅此stackoverflow链接.)但是,修改库通常是一个坏主意,因为它将来会成为一个维护问题.(更新:此方法在第一次请求后无效.)
  3. 加载第一页时,在查询字符串中添加一些特殊内容.然后可以设置cookie.与简单的标题更改相比,这是一种丑陋的解决方案.

我在用户代理字符串更改时做错了吗?或者有另一种方法可以实现这一目标吗?

user-agent android http-headers cordova

8
推荐指数
2
解决办法
6541
查看次数

根据重试次数调整超时时间

我想使用 Polly 执行以下操作:尝试超时时间很短的请求。如果失败,请使用更长的超时时间重试。

我看到Retry可以这样访问retryCount

Policy
.Handle<SomeExceptionType>()
.Retry(3, (exception, retryCount, context) =>
{
    // do something 
});
Run Code Online (Sandbox Code Playgroud)

我看到Timeout可以指定一个intor 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选项似乎最有前途,但它可以从哪里访问重试计数?将状态保持在策略之外是很诱人的,但是如果我想以线程安全的方式共享策略,这很危险。

有什么建议吗?

c# polly

2
推荐指数
1
解决办法
904
查看次数

标签 统计

android ×1

c# ×1

cordova ×1

http-headers ×1

polly ×1

user-agent ×1