介绍
谷歌开源的,
专注于处理高频率的数据比较小的请求
内部仍然是使用的HttpURLConnection和HttpClient进行网络请求的,
只是对于不同的
Android版本进行了响应的切换,
2.3之前使用的HttpClient,
2.3之后使用的是 HttpURLConnection
支持取消请求
具有网络请求和图片加载的功能
添加依赖
compile 'com.android.volley:volley:1.0.0'
创建RequestQueue请求队列,它是用来执行请求对象的
RequestQueue queue = Volley.newRequestQueue(this);
创建请求对象,这里使用最简单的StringRequest:
StringRequest stringRequest = new StringRequest(Api.TEST, new com.android.volley.Response.Listener<String>() {
@Override
public void onResponse(String response) {
text.setText(response);
}
}, new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
执行请求,将Request对象添加到RequestQueue中,即可
//3.执行请求
queue.add(stringRequest);
使用JsonRequest进行请求,返回的是json对象
//1.创建JsonRequest请求
JsonObjectRequest joRequest = new JsonObjectRequest(url, null, new Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
tv_result.setText(response.toString());
}
}, new MyErrorListener());
//2.执行请求
queue.add(joRequest);
使用Volley发送post请求,需要自己重写Request的getParams方法
public class PostReuqest extends StringRequest {
private Map<String, String> params;
public PostReuqest(String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
super(url, listener, errorListener);
}
public PostReuqest(int method,String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
super(method,url, listener, errorListener);
}
public void setParams(Map<String, String> params){
this.params = params;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return params;
}
}
PostReuqest stringRequest = new PostReuqest(Request.Method.POST,Api.LOGIN, new com.android.volley.Response.Listener<String>() {
@Override
public void onResponse(String response) {
text.setText(response);
}
}, new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
HashMap<String,String> map = new HashMap<>();
map.put("username","hehehe");
map.put("password","12321");
stringRequest.setParams(map);
网友评论