java - AppEngine+GCM : IOException: Could not fetch URL: https://android. googleapis.com/gcm/send

标签 java google-app-engine multicast ioexception google-cloud-messaging

我将 GCM 与 Google AppEngine (Java) 结合使用。 我的服务每天发送超过 10.000 条消息。几乎每条消息都成功发送到接收方。 但是几乎每天,在通过 AppEngine 发送 GCM 消息后,我都会收到以下异常:

Uncaught exception from servlet
java.io.IOException: Could not fetch URL: https://android.googleapis.com/gcm/send
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertApplicationException(URLFetchServiceImpl.java:137)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:43)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.fetchResponse(URLFetchServiceStreamHandler.java:417)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.getInputStream(URLFetchServiceStreamHandler.java:296)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.getResponseCode(URLFetchServiceStreamHandler.java:149)
at com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:362)
at com.google.android.gcm.server.Sender.send(Sender.java:261)
at de.alamos.firemergency.apager.gcm.ApagerServlet.sendDataToAndroid(ApagerServlet.java:282)
at de.alamos.firemergency.apager.gcm.ApagerServlet.doPost(ApagerServlet.java:162)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
...

此错误发生在以下行:

MulticastResult results = sender.send(message, tokens, 5);

有没有人知道问题可能出在哪里?

这很奇怪,因为 99,999% 的消息都会被发送。只有少数人抛出此异常。

最佳答案

这里是“解决方案”: https://groups.google.com/forum/#!msg/google-appengine/vkD2ffMogAg/ntF_EkHYaxcJ

总结: 这是很正常的,使用 AppEngine 的一些 URL 调用会失败。如果调用失败,您只需重试。

我尝试使用 AppEngine 任务队列来解决这个问题。

关于java - AppEngine+GCM : IOException: Could not fetch URL: https://android. googleapis.com/gcm/send,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17534334/

相关文章:

android - 什么是 "Web Application"?

java - 多接口(interface)机中的 MulticastSocket.setInterface - 如何使用?

networking - 如何选择多播地址供我的应用程序使用?

c++ - 向同一网络上的所有其他应用程序实例发送消息

java - WCF自动生成的WSDL

java - "incompatible types"lambda/方法引用和泛型编译器错误

macos - 防止在开发 AppEngine Go 应用程序时弹出 OSX 防火墙

java - 无法在 ubuntu 16.04 上使用 PPA 存储库安装 java8

java - 为资源配置 web.xml

html - 是否可以在 Google App Engine Go 中使用 CSS 创建电子邮件模板?