[Phonegap+Sencha Touch] 移动开发60 百度云推送,带特殊符号!&+*'的内容,导致安卓收不到推送

今天,突然有客户反应全部安卓都收不到某些推送。研究了下,发现所有推送都有个共性:带有英文半角感叹号"!"。

后来发现,不仅"!",还有"&+*'"这几个符号,如果出现在百度推送的标题或者内容里面,也会导致安卓设备收不到推送。

可是,在百度的云推送管理控制台里面,发送带这些符号的推送,安卓设备都能收到,如下:



由此判断,应该是我们的服务器到百度服务器这中间出了问题。

调试的时候,发现在我们服务端发送推送内容发送至百度服务器的时候,出了403异常,错误信息是“authentication failed”。可是明明已经将特殊字符转义了,为什么还报403呢。原来是百度的服务器拒绝了除普通的URL特殊字符外的其他某些字符:"!&+*'"



解决办法:

添加下面字符的转义:

  • ! %21
  • & %26
  • ' %27
  • * %2A
  • + %2B

[Phonegap+Sencha Touch] 移动开发60 百度云推送,带特殊符号!&+*'的内容,导致安卓收不到推送_第1张图片





欢迎加入Sencha Touch + Phonegap交流群

1群:194182999 (满)

2群:419834979

共同学习交流(博主QQ:479858761)

你可能感兴趣的:(android,推送,百度云)