做到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<String>() {
@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(); //开始网络请求