Volley 的用法 总结
1.Get 和 POST 用法.
package com.zhong.volleydemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Volley_Get();
my_Volley_Get();
// Volley_Get_Object();
//Volley_Post();
// Volley_Post_Object();
}
private void my_Volley_Get() {
String url="http://apis.juhe.cn/mobile/get?phone=1850100048&key=a3b8777e1a53d8637f5cac73c469a515";
VolleyRequest.RequestGet(this,url,"abcGet", new VolleyInterface(this,
VolleyInterface.mListener,VolleyInterface.mErrorListener){
@Override
public void onMySuccess(String result) {
Toast.makeText(MainActivity.this,result,Toast.LENGTH_LONG).show();
}
@Override
public void onMyError(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
});
}
@Override
protected void onStop() {
super.onStop();
MyApplication.getHttpRequest().cancelAll("abcGet");
}
private void Volley_Post_Object() {
String url ="http://apis.juhe.cn/mobile/get?";
HashMap<String,String> hashMap = new HashMap<>();
hashMap.put("phone","18500004500");
hashMap.put("key","a3b8777e1a53d8637f5cac73c469a515");
JSONObject request = new JSONObject(hashMap);
JsonObjectRequest objectRequest = new JsonObjectRequest(Request.Method.POST, url, request
, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Toast.makeText(MainActivity.this,response.toString(),Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
});
objectRequest.setTag("Object_Post");
MyApplication.getHttpRequest().add(objectRequest);
}
private void Volley_Post() {
String url ="http://apis.juhe.cn/mobile/get?";
StringRequest request = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response ,Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString() ,Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("phone","18501000059");
hashMap.put("key","a3b8777e1a53d8637f5cac73c469a515");
return hashMap;
}
};
request.setTag("abcPost");
MyApplication.getHttpRequest().add(request);
}
private void Volley_Get_Object() {
String url="http://apis.juhe.cn/mobile/get?phone=18501655748&key=a3b8777e1a53d8637f5cac73c469a515";
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Toast.makeText(MainActivity.this,response.toString(),Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString() ,Toast.LENGTH_LONG).show();
}
});
request.setTag("abcGet");
MyApplication.getHttpRequest().add(request);
}
private void Volley_Get() {
String url="http://apis.juhe.cn/mobile/get?phone=18501655748&key=a3b8777e1a53d8637f5cac73c469a515";
StringRequest request = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response ,Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString() ,Toast.LENGTH_LONG).show();
}
});
request.setTag("abcGet");
MyApplication.getHttpRequest().add(request);
}
}
2.二次封装
package com.zhong.volleydemo;
import android.content.Context;
import com.android.volley.Response;
import com.android.volley.VolleyError;
/**
* Created by vctor on 2016/1/16.
*/
public abstract class VolleyInterface {
public Context mContext;
public static Response.Listener<String> mListener;
public static Response.ErrorListener mErrorListener;
public abstract void onMySuccess(String result);
public abstract void onMyError(VolleyError error);
public VolleyInterface(Context context, Response.Listener<String> listener,
Response.ErrorListener errorListener){
this.mContext = context;
this.mListener = listener;
this.mErrorListener = errorListener;
}
public Response.Listener<String> loadingListener(){
mListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
onMySuccess(response);
}
};
return mListener;
}
public Response.ErrorListener errorListener(){
mErrorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
onMyError(error);
}
};
return mErrorListener;
}
}
package com.zhong.volleydemo;
import android.content.Context;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.toolbox.StringRequest;
import java.util.Map;
/**
* Created by Vctor on 2016/1/16.
*/
public class VolleyRequest {
public static StringRequest stringRequest;
public static Context context;
public static void RequestGet(Context mContext,String url,String tag,
VolleyInterface vif){
MyApplication.getHttpRequest().cancelAll(tag);
stringRequest = new StringRequest(Request.Method.GET,url,vif.loadingListener(),
vif.errorListener());
stringRequest.setTag(tag);
MyApplication.getHttpRequest().add(stringRequest);
MyApplication.getHttpRequest().start();
}
public static void RequestPost(Context mContext, String url, String tag,
final Map<String,String> params, VolleyInterface vif){
MyApplication.getHttpRequest().cancelAll(tag);
stringRequest = new StringRequest(url,vif.loadingListener(),
vif.errorListener()){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return params;
}
};
stringRequest.setTag(tag);
MyApplication.getHttpRequest().add(stringRequest);
MyApplication.getHttpRequest().start();
}
}