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); } }
相关文章推荐
- Windows上Python3.5安装Scrapy(lxml) 以及与twisted有关错误的解决
- zeppelin导入第三方依赖
- MySQL性能优化的最佳21条经验
- iOS 调试问题记录(三)
- powerDisigner16 出现licensekey 过期解决办法
- 云计算应用发展对企业影响深远
- 编译原理
- Sublime Text 套件介紹:Pretty JSON
- Xcode 警告、错误,解决方法总结
- mjpg-streamer 移植到OK6410,从摄像头采集视频直播
- 浅谈tcp_nodelay的作用
- PHP语言 -- 新建流程
- 英语单词词根词缀和词性互相转换
- jQuery val和text赋值无效
- PHP 返回13位时间戳的实现代码
- textVIew 在输入时 设置行数并且自适应高度 上移动
- 【AngularJS】学习笔记
- 修改CPAN安装源
- 高仿微博--启动页面
- iOS引导界面与主界面之间切换