您的位置:首页 > 其它

Volley用法

2016-05-13 09:59 183 查看
private void doClockInOut(JSONObject params) {
Response.Listener<JSONObject> okListener = new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
Log.e(service, response.getString("Status"));
if ("1".equals(response.getString("Status"))) {
success = true;
} else if ("-4".equals(response.getString("Status"))) {
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
PersistenceUtils.getSharedInstance().put("login", "0");
MainActivity.act.startActivity(new Intent(MainActivity.act, LoginActivity.class));
MainActivity.act.finish();
}
};
MessageDialog.showMessageDialogTwoButton(MainActivity.act, response.getString("Message"), "Cancel", "Login", listener);
} else {
error = true;
//MessageDialog.showMessageDialog(MainActivity.act, response.getString("Message"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
};

VolleyUtils.getSharedInstance().init(MainActivity.act);
VolleyUtils.getSharedInstance().requestService(MainActivity.act.getString(R.string.ws_url) + service +  ".json", params, okListener, errorListener);
}

private void doOther(Map<String, String> params) {
Response.Listener<String> okListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
Log.e(service, response);
if ("true".equals(response)) {
success = true;
}
} catch (Exception e) {
Log.e(service, e.toString());
}
}
};

VolleyUtils.getSharedInstance().init(MainActivity.act);
VolleyUtils.getSharedInstance().requestService1(MainActivity.act.getString(R.string.ws_url) + service +  ".json", params, okListener, errorListener);
}

Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (VolleyUtils.getSharedInstance().getMessage(error) != null)
Log.e(service, VolleyUtils.getSharedInstance().getMessage(error));
}
};


  

package com.baclock.utils;

import android.app.Activity;
import android.content.Context;

import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.NetworkError;
import com.android.volley.NoConnectionError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.ServerError;
import com.android.volley.TimeoutError;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.baclock.R;

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.Map;

/**
* Created by Jack on 1/13/2016.
*/
public class VolleyUtils {

private static VolleyUtils sharedInstance = null;
private RequestQueue requestQueue = null;
private String tag;
private int time_out_ms = 10000;

public static VolleyUtils getSharedInstance() {
if (sharedInstance == null) {
sharedInstance = new VolleyUtils();
}
return sharedInstance;
}

public void init(Activity act) {
if (requestQueue == null) {
requestQueue = Volley.newRequestQueue(act);
tag = act.getString(R.string.app_name);
}
}

public void requestService(String url, JSONObject param, Response.Listener<JSONObject> OkListener, Response.ErrorListener errorListener) {
JsonObjectRequest jsonObjRequest = new JsonObjectRequest(Request.Method.POST, url, param, OkListener, errorListener);
jsonObjRequest.setRetryPolicy(new DefaultRetryPolicy(time_out_ms, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
jsonObjRequest.setTag(tag);
requestQueue.add(jsonObjRequest);
}

public void JsonArrayRequestService(String url, JSONObject param, Response.Listener<JSONArray> OkListener, Response.ErrorListener errorListener) {
JsonArrayRequest request = new JsonArrayRequest(Request.Method.POST, url, param, OkListener, errorListener);
request.setRetryPolicy(new DefaultRetryPolicy(time_out_ms, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
request.setTag(tag);
requestQueue.add(request);
}

public void requestService1(String url, final Map<String, String> param, Response.Listener<String> OkListener, Response.ErrorListener errorListener) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, OkListener, errorListener) {
@Override
protected Map<String, String> getParams() {
return param;
}
};
stringRequest.setRetryPolicy(new DefaultRetryPolicy(time_out_ms, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
stringRequest.setTag(tag);
requestQueue.add(stringRequest);
}

public String getMessage(VolleyError error) {
if (error instanceof TimeoutError) {
return "The request time out!";
} else if (isServerProblem(error)) {
return "Server is error";
} else if (isNetworkProblem(error)) {
return "Network is error, please check your internet!";
} else if (error.getMessage().startsWith("org.json.JSONException")) {
return null;
} else {
//          if (error != null && error.getMessage() != null)
//              return error.getMessage();
//          else
//              return "Carrot error";
return error.getMessage();
}
}

private boolean isNetworkProblem(Object error) {
return (error instanceof NetworkError) || (error instanceof NoConnectionError);
}

private boolean isServerProblem(Object error) {
return (error instanceof ServerError) || (error instanceof AuthFailureError);
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: