服务器运行在Apache Tomcat6.0(localhost)上,Android模拟器运行在Google APIs(API level 17)上。 我有一个发送者ID和API密钥。 当从模拟器运行时,我得到了一个成功的设备连接消息。 但在发送消息后不久,就会出现以下错误。
com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 401()
com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:211)
com.google.android.gcm.server.Sender.send(Sender.java:125)
com.google.android.gcm.demo.server.SendAllMessagesServlet.doPost(SendAllMessagesServlet.java:83)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
从其他帖子中,我了解到错误的API密钥是罪魁祸首。但在我的情况下,我确保使用了来自API控制台的正确密钥。
顺便说一句,当我运行模拟器时,我看到了一条消息“将regId发送到服务器”。注册ID是什么?它与发送者ID不同;看起来像是编码过的ID。
有任何突破吗?
编辑
问题最终得到解决!Ant没有正确构建WAR文件。因此,API密钥几乎不会更新。找出这个bug真的很困难。感谢所有人的帮助!