HTTP状态码:GCMDemo中的401

Nic*_*Nic 9 http-status-code-401 google-cloud-messaging

参考文献:http://developer.android.com/google/gcm/demo.html

尝试向我的Android设备发送消息时的服务器401.

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.
Run Code Online (Sandbox Code Playgroud)

谁能告诉我怎么解决?谢谢!

sel*_*ine 14

您应该查看解释GCM响应的GCM文档:http://developer.android.com/google/gcm/gcm.html#response并对401错误代码进行故障排除:http://developer.android. COM /谷歌/ GCM/gcm.html#auth_error

来自文档的描述:

身份验证错误您尝试用于发送邮件的发件人帐户无法进行身份验证.可能的原因是:

授权标头丢失或语法无效.

作为密钥发送的项目编号无效.

密钥有效但GCM服务已禁用.

请求源自服务器密钥IP中未列入白名单的服务器.

因此,我会检查以确保您正确设置了授权标头,并确保使用GCM正确设置Google Project编号并接受您的服务器IP.

  • 谢谢你的回答!原因是当你修改api-key时,当我更改了api-key并允许所有IP地址,然后发送的消息没有任何错误!感谢您的帮助! (3认同)