android网络请求框架volley报错:com.android.volley.NoConnectionError: java.io.InterruptedIOException

做到android的网络请求,用volley这个框架试试看。

在build.gradle文件中导入依赖:

    implementation 'com.mcxiaoke.volley:library:1.0.19'
          RequestQueue mQueue = Volley.newRequestQueue(getContext());

                //创建StringRequest实例
                StringRequest stringRequest = new StringRequest("https://www.baidu.com",
                        new Response.Listener() {
                            @Override
                            public void onResponse(String response) {
                                Log.d("TAG", response);
                            }
                        }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e("TAG", error.getMessage(), error);
                    }
                });

                mQueue.add(stringRequest);

//                mQueue.start(); //开始网络请求

几行代码就可以请求网络了。但是也会出现新手常犯的错误。

1、声明RequestQueue对象时,报错

java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File android.content.Context.getCacheDir()' on a null object reference

原因是
这句代码写在了类中,getContext()方法报错

2、

com.android.volley.NoConnectionError: java.io.InterruptedIOException: thread interrupted

原因是Volley在newRequestQueue的时候,已经调用了queue.start()方法了,不能再次调用,注释掉最后一行代码即可。

//                mQueue.start(); //开始网络请求

你可能感兴趣的:(安卓)