volley:适合网络通信频繁操作,并能同时实现多个网络通信、扩展性强、通过接口配置之类的优点。
用法
使用Volley的通用步骤就是通过Volley暴露的newRequestQueue方法,创建的我们的RequestQueue,接着往我们的RequestQueue中添加Request( StringRequest、 JsonRequest、ImageRequest,以及你自己定义的Request)。
private void initNetWork() {
RequestQueue queue = Volley.newRequestQueue(this);
String url = "";
StringRequest stringRequest = new StringRequest(Request.Method.GET,
url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
public void onResponse(String response) {
}
}, new Response.ErrorListener() {
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
public void onErrorResponse(VolleyError error) {
}
});
queue.add(stringRequest);
queue.start();
}
});
queue.add(stringRequest);
queue.start();
}
步骤很简单,总结就三步:
创建一个RequestQueue对象。
创建一个StringRequest对象。
将StringRequest对象添加到RequestQueue里面。
创建一个RequestQueue对象。
创建一个StringRequest对象。
将StringRequest对象添加到RequestQueue里面。
上面的实例通过get方式请求数据的,post的方式也是很简单,在创建Request的时候,第一个参数改为Request.Methode.POST:
private void initNetWork_1() {
RequestQueue queue = Volley.newRequestQueue(this);
String url = "";
StringRequest stringRequest = new StringRequest(Request.Method.POST,
url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
public void onResponse(String response) {
}
}, new Response.ErrorListener() {
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
// TODO Auto-generated method stub
return super.getParams();
}
};
queue.add(stringRequest);
queue.start();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
// TODO Auto-generated method stub
return super.getParams();
}
};
queue.add(stringRequest);
queue.start();
}
仔细查看上面POST和GET的不同方式的请求代码,可以看出POST的时候多了一个getParams方法,返回的Map类型,getParams获取的数据是用于向服务器提交的参数。