参考文献:http://developer.android.com/google/gcm/demo.html
服务器401尝试向我的Android设备发送消息时。
HTTP Status 500 - HTTP Status Code: 401
type Exception report
message HTTP Status Code: 401
description The server encountered an internal error (HTTP Status Code: 401) that prevented it from fulfilling this request.
exception
com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 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(SendAllMessagesServ let.java:83)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs.
有人能告诉我怎么解决吗?谢谢!
答案 0 :(得分:14)
您应该查看解释GCM响应的GCM文档:http://developer.android.com/google/gcm/gcm.html#response并排查401错误代码:http://developer.android.com/google/gcm/gcm.html#auth_error
文档说明:
身份验证错误 您尝试使用的发件人帐户 发送消息无法通过身份验证。可能的原因是:
缺少授权标头或语法无效。
作为密钥发送的项目编号无效。
密钥有效但禁用了GCM服务。
请求来自服务器密钥IP中未列入白名单的服务器。
因此,我会检查以确保您正确设置授权标题,并确保使用GCM正确设置Google Project编号并接受您的服务器IP。