Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当使用无效的注册id时,GCM返回错误的请求_Java_Android_Push Notification_Google Cloud Messaging - Fatal编程技术网

Java 当使用无效的注册id时,GCM返回错误的请求

Java 当使用无效的注册id时,GCM返回错误的请求,java,android,push-notification,google-cloud-messaging,Java,Android,Push Notification,Google Cloud Messaging,我们目前在测试GCM服务时面临一个奇怪的问题 当我们发送一个有效的请求(带有一个有效的注册id)时,一切正常,通知被发送到客户端应用程序 然后我们想测试一种负面的场景,我们使用了一个错误的注册id(我们只交换了一个字母),然后GCM返回400个错误请求或401个未经授权的请求 根据GCM文档,我们应该得到一个“200+错误:无效注册” 编辑1:我们只使用GCM请求中的“收件人”和“内容可用”字段。JSON很好,否则它将无法与有效的 注册号 编辑2:我们发现,如果您手动更改注册id的字母,您将收到

我们目前在测试GCM服务时面临一个奇怪的问题

当我们发送一个有效的请求(带有一个有效的注册id)时,一切正常,通知被发送到客户端应用程序

然后我们想测试一种负面的场景,我们使用了一个错误的注册id(我们只交换了一个字母),然后GCM返回400个错误请求或401个未经授权的请求

根据GCM文档,我们应该得到一个“200+错误:无效注册”

编辑1:我们只使用GCM请求中的“收件人”和“内容可用”字段。JSON很好,否则它将无法与有效的 注册号

编辑2:我们发现,如果您手动更改注册id的字母,您将收到一个错误的请求作为响应。这意味着在GCM端可能会有一些验证来检查注册id是否被操纵。如果我们使用来自另一个应用程序的注册id,我们将收到来自GCM的正常错误响应

以前有人遇到过这个问题吗?

是的,你说得对

但是

如果只发送一个带有“to”参数的令牌,GCM将返回400

如果您尝试发送多个令牌(其中一些令牌有效,其他令牌无效),GCM返回200,错误列表中有“InvalidRegistration”代码

我可以这样说,

如果使用“to”,GCM返回400

如果使用“注册ID”,GCM将返回200和错误列表作为响应


您也可以使用测试用例进行检查。

文档还提到,应该从服务器中删除标有“InvalidRegistration”代码的注册ID。现在,如果我只发送'to'和GCM return 400,我是否还需要从服务器中删除注册id?作为文档;响应中描述了确切的失败原因,应该在重试请求之前解决问题。但我认为如果返回错误400,则不会有响应,因此如果您确实确定json格式为true,则可以从数据库中删除此令牌。测试库中提到的发送方id是什么?这是在生成注册令牌时生成的发送方id吗?它是服务器api密钥。应更改变量名。例如:Aizasychyrxdwczldvrykgywyvzmzfo31hlbr