我正在将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%的所有邮件。只有少数人抛出这个例外。
答案 0 :(得分:1)
这是“解决方案”: https://groups.google.com/forum/#!msg/google-appengine/vkD2ffMogAg/ntF_EkHYaxcJ
要点: 很正常,使用AppEngine进行的一些URL调用将失败。如果呼叫失败,您只需再次尝试。
我尝试使用AppEngine任务队列来解决这个问题。