【问题标题】:JSON value read but nothing received读取 JSON 值但未收到任何内容
【发布时间】:2016-01-30 04:06:22
【问题描述】:

我正在尝试在“https://gcm-http.googleapis.com/gcm/send”上进行 POST。

我收到的连接如下:

200
{"multicast_id":6570365141544424316,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1446150341234481%2c7295a7f9fd7ecd"}]}

换句话说,它正在与 GCM 通话,应该向我的手机发送推送通知。但是,我怀疑我发送的 JSON 不正确。这是 JSON:

String json ="{\"registration_ids\" : [\"APA91bGxHWapgmxgyvPceu85ArDMLaFekbTt5RGzy3gv1xtSO09tJbvnaeVLefBqNl_iBrctoZQ2AltSMfrXykq8-AEQtUUWnCVH566xcwib4HinI16W3_g\"],\"notification\" : {\"sound\" : \"default\",\"badge\" : \"1\",\"title\" : \"default\",\"body\"  : \"Test\"},\"data\" : {\"msg\":{\"message\":\"this is it\"}}}";

我不确定如何调试此问题,因为我没有收到任何信息。如果有人能告诉我正确的语法,我将不胜感激。也许我的语法是正确的,我只是没有向 GCM 发送正确的参数?

【问题讨论】:

  • registration_ids 替换为to。或许能解决问题。
  • 我觉得你的服务器端代码没问题,只需要检查客户端应用程序(android)。您可以在以下stackoverflow.com/questions/32299997/… 阅读我的回答
  • @Ali 我试了一下,它返回的错误代码为 400。也许它不理解 'to'?
  • @BNK 这实际上是我发送的 JSON 字符串!我从您的答案中复制了该字符串并更改了注册 ID,它就像一个魅力:)。我对你的回答投了赞成票。谢谢您的帮助!另外,如果您愿意,可以在这篇文章中给出官方答案,以便我可以将其标记为正确答案?不确定是否需要。

标签: java android json google-cloud-messaging


【解决方案1】:

您可以在以下问题中找到:

How to implement a GCM Hello World for Android using Android Studio

final String postData = "{ \"registration_ids\": [ \"" + CLIENT_REG_ID + "\" ], " +
                    "\"delay_while_idle\": true, " +
                    "\"data\": {\"tickerText\":\"My Ticket\", " +
                    "\"contentTitle\":\"My Title\", " +
                    "\"message\": \"Test GCM message from GCMServer-Android\"}}";

当然,您也可以将to 与字符串一起使用,而不是将registration_ids 与数组一起使用。

请阅读Google's documentation - Downstream message syntax了解更多详情。希望这会有所帮助!

【讨论】:

  • 嘿,我有几个问题。 1.你知道为什么我在应用内收不到推送,而在应用外却收到了吗? 2. 与其他手机相比,note 6 似乎以延迟的方式收到这些推送通知
  • 嗨!我不明白你的第一个问题。关于第二个,我没有 Note6 可以检查。我认为您可以在 SO 中创建新问题,以便任何人都可以提供帮助。
  • 哦,别着急,第一个问题和我用的插件有关。我可能会在稍后发布一个问题。
猜你喜欢
  • 2018-01-25
  • 1970-01-01
  • 2011-09-14
  • 2020-08-29
  • 1970-01-01
  • 2014-08-20
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多