Volley的get和post请求 其中get和post还分别可以使用
StringRequest、JsonObjectRequest和 JsonArrayRequest三种方式,下面把整理的StringRequest和JsonObjectRequest两种方式的源码付在下面供大家参考:
1、volley请求之Get请求:
private void volley_Get() { //使用StringRequest // String url = "http://httpbin.org/get?site=code&network=tutsplus"; // StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { // @Override // public void onResponse(String s) { // Log.e("onResponse===","onResponse-"+s); // tv_content.setText(s); // } // }, new Response.ErrorListener() { // @Override // public void onErrorResponse(VolleyError volleyError) { // tv_content.setText(volleyError.toString()); // } // }); // request.setTag("abcGet"); // MyApplication.getHttpQueues().add(request); //使用JsonObjectRequest String url = "http://httpbin.org/get?site=code&network=tutsplus"; JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { tv_content.setText("请求结果:\n" + jsonObject.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Toast.makeText(MainActivity.this, volleyError.toString(), Toast.LENGTH_LONG).show(); } }); request.setTag("abcGet"); MyApplication.getHttpQueues().add(request); }
2、volley请求之Post请求:
private void volley_Post() { //使用StringRequest // String url = "http://httpbin.org/post?"; // StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { // @Override // public void onResponse(String s) { tv_content.setText("请求结果:\n"+s); // JSONObject jsonObject = null; // try { // jsonObject = new JSONObject(s); // String m = jsonObject.getString("data"); // String n = jsonObject.getJSONObject("form").getString("site"); // tv_content.setText(m+n); // } catch (JSONException e) { // e.printStackTrace(); // } // } // }, new Response.ErrorListener() { // @Override // public void onErrorResponse(VolleyError volleyError) { // tv_content.setText(volleyError.toString()); // } // }){ // @Override // protected Map<String, String> getParams() throws AuthFailureError { // Map<String,String> hashMap = new HashMap<>(); // hashMap.put("site","code"); // hashMap.put("network","tutsplus"); // return hashMap; // } // }; // request.setTag("abcPost"); // MyApplication.getHttpQueues().add(request); //使用JsonObjectRequest String url = "http://httpbin.org/post?"; HashMap<String, String> map = new HashMap<>(); map.put("site", "code"); map.put("network", "tutsplus"); JSONObject object = new JSONObject(map); JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, object, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { tv_content.setText(jsonObject.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { tv_content.setText(volleyError.toString()); } }); request.setTag("abcPost"); MyApplication.getHttpQueues().add(request); }
新建一个Application
public class MyApplication extends Application { public static RequestQueue queues; @Override public void onCreate() { super.onCreate(); queues = Volley.newRequestQueue(getApplicationContext()); } public static RequestQueue getHttpQueues(){ return queues; } }
同时还要注意在AndroidManifest.xml里添加网络权限
<!-- 网络权限 --> <uses-permission android:name="android.permission.INTERNET"/>
在application里加上android:name=".MyApplication"