【发布时间】:2013-09-12 06:13:50
【问题描述】:
我正在使用 Google Volley 和 Gson 编写我的应用程序,以与使用 OkHttp 作为 HTTP-Stack 的 REST 服务通信。这在大多数情况下都很好用,但是当我暂停我的应用程序并返回它时,HTTP 请求不适用于此异常:
09-08 19:29:19.611: E/ASDF(21827): com.android.volley.NoConnectionError: java.io.EOFException
09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:125)
09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105)
09-08 19:29:19.611: E/ASDF(21827): Caused by: java.io.EOFException
09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:206)
09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:98)
09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpEngine.initContentStream(HttpEngine.java:461)
09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:659)
09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:346)
09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:295)
09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:489)
09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:136)
09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:109)
09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93)
09-08 19:29:19.611: E/ASDF(21827): ... 1 more
这是随机发生的。不是每次我暂停我的申请。我真的不知道从哪里开始。
【问题讨论】:
-
这是否仍然会关闭 wifi 优化(设置 > Wifi > 菜单(三点按钮)> 高级 > Wifi 优化或修改睡眠策略)?如果是这样,则设备可能会在您发出 http 请求但尚未准备好时尝试重新初始化 wifi 连接。 HTH!
-
让我们试一试。因此,换句话说:如果发生此 EOFException,我应该重试添加请求吗?
-
试过了。结果相同。该错误很容易重现:只需暂停应用程序并重新启动它。即使在 eclipse 中重新安装它也会产生错误。但是在手动卸载之前重新安装,一切都很好。
标签: android android-volley okhttp