如何处理 HTTP 412(前提条件失败)- 设备处于非活动状态

Posted

技术标签:

【中文标题】如何处理 HTTP 412(前提条件失败)- 设备处于非活动状态【英文标题】:What to do with HTTP 412 (Precondition Failed) - The device is in an inactive state 【发布时间】:2012-03-23 12:35:26 【问题描述】:

每当我尝试向诺基亚 WP7 设备发送推送通知时,都会收到此错误消息。 其他推送 URI 不会返回此错误,但使用此错误,每次尝试都会失败,即使手机处于“唤醒”状态并打开 wi-fi。

查看 MSDN 文档,我想到了这个:

http://msdn.microsoft.com/en-us/library/ff941100(v=vs.92).aspx

设备处于非活动状态。收到此错误后,Web 服务可能会重新尝试最多每小时发送一次请求。如果 Web 服务违反了每小时重试次数的上限,推送通知服务将注销或永久阻止该 Web 服务。”

这并没有多大帮助,因为我所能做的就是遵守“1 小时后重试”并再次尝试发送。 我怀疑它可能与设备中从未有 SIM 卡有关,因此无法“激活”,但如果这是真的,为什么 MSPN 会返回应用程序的推送 URI?

提前致谢

【问题讨论】:

我之前遇到过这个问题,我认为可能是设备订阅了最大数量的端点,而您收到的链接可能不会发送,因为设备已经最大化了它的订阅。这是一个盲目的猜测,所以不要引用我的话,但我很确定这就是它的全部内容。 【参考方案1】:

我注意到 Microsoft 经常为设备生成新的 ChannelUri(在过去 2 天中,我的 2 台设备有 5 个通道 uri)

可能是为设备生成了新的channeluri。

【讨论】:

以上是关于如何处理 HTTP 412(前提条件失败)- 设备处于非活动状态的主要内容,如果未能解决你的问题,请参考以下文章

如何处理网络请求失败错误?

如何处理失败的可选绑定

如何处理大查询错误403:配额超出?

错误代码412是啥啊?怎么解决??

如何处理Zuul中的hystrix后备?

[当PHP代码失败但发送200时如何处理AJAX?