HTTP状态码:GCMDemo中的401

时间:2012-12-21 05:47:11

标签: google-cloud-messaging http-status-code-401

参考文献: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.

有人能告诉我怎么解决吗?谢谢!

1 个答案:

答案 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。