当我仅使用Volley提出请求时,一切顺利,我的StringRequest转到onResponse。
但是当我切换到Volley + Okhttp组合时,我的请求通过,我收到了与之前相同的响应,但后来我收到以下错误消息:
E/Volley﹕ [122319] BasicNetwork.performRequest: Unexpected response code 200 for <my request url>
java.io.IOException: closed
com.android.volley.NetworkError: java.io.IOException: closed
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:182)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)
Caused by: java.io.IOException: closed
at okio.RealBufferedSource$1.read(RealBufferedSource.java:345)
at java.io.InputStream.read(InputStream.java:162)
at com.android.volley.toolbox.BasicNetwork.entityToBytes(BasicNetwork.java:254)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:130)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)
我将这个https://gist.github.com/bryanstern/4e8f1cb5a8e14c202750用于我的OkHttpStack for Volley。
答案 0 :(得分:2)
我没有太多时间去调查,但在使用通过代理连接的模拟器(Charles)时遇到了同样的问题。对我来说,当我在没有代理或设备的情况下进行测试时,问题就会消失。
答案 1 :(得分:0)
当使用RequestQueue的start和stop方法时,我遇到了同样的问题。在许多流行的博客中都指出,当用户投掷时应该停止RequestQueue以确保没有抽搐。但是,当您调用stop时,所有RequestQueue的请求都会停止,即使是那些已经在进行网络呼叫的请求也是如此。当这些请求被初步停止时,会发生上述异常。没有调用stop函数解决了我的问题。
答案 2 :(得分:0)