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"