关于活动之间连续切换的Volley NoConnectionError java.io.IOException

时间:2016-11-12 10:07:45

标签: java android android-volley okhttp

我有两个片段活动,即Feed和Profile.Both这些活动使用一个排球JSON请求从服务器请求一些数据。我还创建了一个封装Volley RequestQueue的单例类。最初,两个活动都使用齐射正确加载数据。但是,在活动之间连续切换后,Volley会抛出以下错误,之后在一段时间内没有向服务器发送任何请求。

1-12 14:48:58.146 27190-27190/com.tdn W/System.err: com.android.volley.NoConnectionError: java.io.IOException: unexpected end of stream on Connection{www.grabuk.com:80, proxy=DIRECT@ hostAddress=43.255.154.57 cipherSuite=none protocol=http/1.1} (recycle count=0)
11-12 14:48:58.146 27190-27190/com.tdn W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:151)
11-12 14:48:58.146 27190-27190/com.tdn W/System.err:     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)
11-12 14:48:58.146 27190-27190/com.tdn W/System.err: Caused by: java.io.IOException: unexpected end of stream on Connection{www.grabuk.com:80, proxy=DIRECT@ hostAddress=43.255.154.57 cipherSuite=none protocol=http/1.1} (recycle count=0)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:258)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:104)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:1154)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:982)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:474)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:410)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:532)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:110)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:96)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:    ... 1 more
11-12 14:48:58.151 27190-27190/com.tdn W/System.err: Caused by: java.io.EOFException: \n not found: size=0 content=...
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:210)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:239)
11-12 14:48:58.151 27190-27190/com.tdn W/System.err:    ... 9 more
11-12 14:48:58.156 27190-27190/com.tdn E/RecyclerView: No adapter attached; skipping layout
11-12 14:48:58.181 27190-27190/com.tdn D/error:: com.android.volley.NoConnectionError: java.io.IOException: unexpected end of stream on Connection{www.grabuk.com:80, proxy=DIRECT@ hostAddress=43.255.154.57 cipherSuite=none protocol=http/1.1} (recycle count=0)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err: com.android.volley.NoConnectionError: java.io.IOException: unexpected end of stream on Connection{www.grabuk.com:80, proxy=DIRECT@ hostAddress=43.255.154.57 cipherSuite=none protocol=http/1.1} (recycle count=0)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:151)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err: Caused by: java.io.IOException: unexpected end of stream on Connection{www.grabuk.com:80, proxy=DIRECT@ hostAddress=43.255.154.57 cipherSuite=none protocol=http/1.1} (recycle count=0)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:258)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:104)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:1154)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:982)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:474)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:410)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:532)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:110)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:96)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:    ... 1 more
11-12 14:48:58.181 27190-27190/com.tdn W/System.err: Caused by: java.io.EOFException: \n not found: size=0 content=...
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:210)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:     at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:239)
11-12 14:48:58.181 27190-27190/com.tdn W/System.err:    ... 9 more

等待一段时间后,当我再次在活动之间切换时,凌空正确加载数据。我在StackOverflow上阅读了很多问题但是它们似乎都没有解决我的问题。这就是我的截击请求:

    {
        Map<String, String> params = new HashMap<String, String>();
        params.put(UID, String.valueOf(Singelton.getUserID()));
        params.put(COUNT,Integer.toString(cnt));

        RequestQueue requestQueue = CustomVolleyRequest.getInstance(getActivity().getApplicationContext()).getRequestQueue();
        CustomRequest jsObjRequest = new CustomRequest(Request.Method.POST, url, params, new Response.Listener<JSONObject>()
        {
            @Override
            public void onResponse(JSONObject response)
            {

                Log.d("respnse:",response.toString());
                processresponse(response);
            }
        }, new Response.ErrorListener()
        {

            @Override
            public void onErrorResponse(VolleyError error)
            {         
                error.printStackTrace();
            }
        });
        requestQueue.add(jsObjRequest);
    }

0 个答案:

没有答案