1.初始化请求队列 RequestQueue
RequestQueue queue= Volley.newRequestQueue(context);
2.StringRequest 网络请求
Get请求
StringRequest request = new StringRequest( "http://www.baidu.com/", new Response.Listener<String>() { @Override public void onResponse(String arg0) { //收到成功应答后会触发这里 } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { //出现连接错误会触发这里 } } );
Post 请求
StringRequest request = new StringRequest( Request.Method.POST, "http://xxx.xxx.xxx", new Response.Listener<String>() { @Override public void onResponse(String s) { } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } } ) { @Override public Map<String, String> getHeaders() throws AuthFailureError { //设置头信息 Map<String, String> map = new HashMap<String, String>(); map.put("Content-Type", "application/x-www-form-urldecoded"); return map; } @Override protected Map<String, String> getParams() throws AuthFailureError { //设置参数 Map<String, String> map = new HashMap<String, String>(); map.put("name", "王雪猪"); map.put("password", "123456"); return map; } /** * 可以对返回的reponse做处理, NetworkResponse里面包括状态码,头信息,内容数据,是否缓存在本地,花费的时间(ms)等内容 **/ @Override protected Response<String> parseNetworkResponse( NetworkResponse response) { // 比如下面的例子是取头信息里的cookie数据 /* * String mCookie; * for (String s : response.headers.keySet()) { * if (s.contains("Set-Cookie")) { mCookie = * response.headers.get(s); break; } } */ return super.parseNetworkResponse(response); } };
可以通过复写里面的方法把数据给传进去
3.JsonObjectRequest 基本使用
JsonObjectRequest request = new JsonObjectRequest( "http://xxx.xxx.xx", jsonObject, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } } ) { @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); map.put("Cookie", mCookie); return map; } };
最后只要再把成功监听器里拿到的数据处理就能使用了。
post传到服务器上时已经是json格式,接着在服务器里处理,返回的也要是json格式的数据,否则会导致数据错误(无法转化成JSONObject格式)。