我正在使用Google Cloud Messaging(GCM)示例代码来同时支持客户端和服务器。 我已经使用Apache Tomcat& amp;成功设置了服务器。还按照教程中提供的步骤创建了Android应用程序(apk)。
在Apache Tomcat上部署war文件后,我可以从模拟器注册。我为Tomcat服务器提供了一个公共IP&能够使用GPRS从移动浏览器中查看“注册屏幕”。
我已按照GCM教程中提供的所有步骤进行操作。
GCM的示例代码有问题吗?
当我点击按钮向已注册的设备发送消息时,我收到以下异常:
com.google.android.gcm.server.InvalidRequestException:HTTP状态 代码:401 com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:177) com.google.android.gcm.server.Sender.send(Sender.java:121) com.google.android.gcm.demo.server.SendAllMessagesServlet.doPost(SendAllMessagesServlet.java:82) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
我已经完成了一些类似的帖子,但我没有找到任何关于这个问题的确切解决方案。 任何建议/提示都会有所帮助。
答案 0 :(得分:4)
我使用tomcat作为服务器遇到同样的问题,修复它我修改了这个文件
WebContent/WEB-INF/classes/api.key
使用从google api控制台中提取的API密钥替换内容。
我希望它有所帮助。
答案 1 :(得分:4)
Google最近将其api控制台更新为Google Cloud Console。简而言之,您需要创建一个Android应用程序并通过Web服务器选择访问API。 this service has a detailed guide for that
答案 2 :(得分:0)
这是未授权的返回代码。您的服务器应用程序未通过GCM服务器验证。您是否在开发人员控制台中生成了自己的API密钥?