1.导入volley
在gradle文件中添加依赖:
compile 'com.mcxiaoke.volley:library:1.0.17'
2.StringRequest
首先需要获取到一个RequestQueue对象,可以调用如下方法获取到:
RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
这里拿到的RequestQueue是一个请求队列对象,它可以缓存所有的HTTP请求,然后按照一定的算法并发地发出这些请求。RequestQueue内部的设计就是非常合适高并发的,因此我们不必为每一次HTTP请求都创建一个RequestQueue对象,这是非常浪费资源的,基本上在每一个需要和网络交互的Activity中创建一个RequestQueue对象就足够了。
接下来为了要发出一条HTTP请求,我们还需要创建一个StringRequest对象,如下所示:
StringRequest stringRequest = new StringRequest("http://www.baidu.com", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this, "网络已连接,敬请等待结果!", Toast.LENGTH_LONG).show();
String data = null;
try {
data = new String(response.getBytes("ISO-8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Log.d("stringget", data);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, "网络连接错误!", Toast.LENGTH_LONG).show();
Log.e("stringget", error.toString(), error);
}
});
StringRequest的构造函数需要传入三个参数,第一个参数就是目标服务器的URL地址,第二个参数是服务器响应成功的回调,第三个参数是服务器响应失败的回调。