我正在使用Google Volley和Gson编写我的应用程序,将OkHttp的REST服务与HTTP-Stack进行交谈.这大部分时间都很好,但是当我暂停我的应用程序并返回它时,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
这是随机发生的.不是每次我暂停我的申请.我真的不知道从哪里开始.
解决方法
似乎这个问题是由Android本身的一个bug引起的,应该是固定的!这个问题及其修复在这里描述:
Android issue 24672
所以将这段代码添加到我的OkHttp URLConnection工厂,立刻解决了这个问题:
@Override protected HttpURLConnection createConnection(URL url) throws IOException { HttpURLConnection connection = client.open(url); // Fix for bug in Android runtime(!!!): // https://code.google.com/p/android/issues/detail?id=24672 connection.setRequestProperty("Accept-Encoding",""); return connection; }
原文地址:https://www.jb51.cc/android/312998.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。