Android:简单封装Volley StringRequest
来源:互联网 发布:java实现静态代理 编辑:程序博客网 时间:2024/04/28 12:47
毕业后进入公司开始进行商业app,网络请求几乎都是必须的,现有的第三方库Volley、okhttp、retrofit ,个人感觉入门级的应该就是Volley使用数据较小频繁的网络请求,毕竟做android开发,数据请求几乎是家常便饭,所以这里对简单的数据请求StringRequest进行了封装代码如下:
import android.os.Handler;import android.os.Message;import android.util.Log;import com.android.volley.AuthFailureError;import com.android.volley.Request;import com.android.volley.RequestQueue;import com.android.volley.Response;import com.android.volley.VolleyError;import com.android.volley.toolbox.JsonObjectRequest;import com.android.volley.toolbox.StringRequest;import com.android.volley.toolbox.Volley;import org.json.JSONObject;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/** * Created by ZHL on 2016/8/24. * volley 访问 get post 封装 * 参数说明 * String url:接口访问网址 * final Handler handler:接口回调handler * final Map<String, String> map: post方式访问时参数(键值对) final int scode:接口成功返回message代码(正常返回,需要解析返回的json,解析数据或判断操作结果) final int ecode:接口失败返回message代码(异常) */public class VolleyRequest { private static final String TAG_S = "-volley success-->"; private static final String TAG_E = "-volley error-->"; /** * 简单的客户端 get请求 * * @param url * @param handler */ public static void getStringRequest(String url, final Handler handler, final int scode,final int ecode) { try{ StringRequest request = new StringRequest(url, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.i(TAG_S,"success:"+response.toString()); Message msg = new Message(); msg.what = scode; msg.obj = response.toString(); handler.sendMessage(msg); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.i(TAG_E, "error:"+error.toString()); Message msg = new Message(); msg.what = ecode; msg.obj = error.toString(); handler.sendMessage(msg); } }); MyApplication.getHttpQueue().add(request); }catch (Exception e){ Log.i(TAG_E, "Exception:"+e.toString()); handler.sendEmptyMessage(ecode); } } /** * 简单的客户端 post请求 * * @param url * @param handler * @param map */ public static void postStringRequest(String url, final Handler handler, final Map<String, String> map, final int scode,final int ecode) { try{ StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.i(TAG_S,"result:"+response.toString()); Message msg = new Message(); msg.what = scode; msg.obj = response.toString(); handler.sendMessage(msg); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.i(TAG_E,"error:"+error.toString()); Message msg = new Message(); msg.what = ecode; msg.obj = error.toString(); handler.sendMessage(msg); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { return map; } }; Log.i(TAG_S,"|url|"+url); Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); Log.i(TAG_S,"|param|"+entry.getKey() + " = " + entry.getValue()); } MyApplication.getHttpQueue().add(request); }catch (Exception e){ Log.i(TAG_E, "Exception:"+e.toString()); handler.sendEmptyMessage(ecode); } }}
使用前提:
gradle引入volley库:(git地址)
compile 'com.mcxiaoke.volley:library:1.0.19'
初始化:
/** * Created by ZHL on 2016/8/18. */public class MyApplication extends Application{ private static MyApplication instance; // 建立请求队列 public static RequestQueue queue; public static RequestQueue getHttpQueue() { return queue; } private static Context mContext; private static String TAG="--Application info---->"; @Override public void onCreate() { super.onCreate(); queue = Volley.newRequestQueue(getApplicationContext()); }}
使用:
Map map = new HashMap();map.put("key1", "value1");map.put("key2", "value2");map.put("key3", "value3");....VolleyRequest.postStringRequest(URL,handler,map,SUCCESS_CODE,ERROR_CODE);
END
0 0
- Android:简单封装Volley StringRequest
- Android Volley StringRequest
- Android Volley - volley StringRequest編碼問題
- Android Volley - volley StringRequest編碼問題
- android之volley StringRequest null
- volley请求的二次封装---StringRequest
- android 解决volley中StringRequest返回乱码
- Android 自己简单封装的Volley
- Volley发送StringRequest请求
- Volley的StringRequest()简用
- Android Volley的基本用法--StringRequest以及JsonReques
- Android Volley框架(一):StringRequest、JsonObjectRequest、JsonArrayRequest
- Android-Volley网络通信框架(StringRequest和JsonObjectRequset)
- Android-Volley网络通信框架(StringRequest & JsonObjectRequest)
- Android高级之Volley框架(一):StringRequest
- Volley简单封装--笔记
- 【进阶android】Volley源码分析——Volley的工具【StringRequest】
- 【Volley】加载图片和StringRequest
- 微雪知寒意 回首不是春
- Hadoop MapReduce和Yarn的关系
- 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
- 联科教育为全球最大的网络供应商Cisco(思科)提供技术培训!
- Fragment详解 Manager(3)
- Android:简单封装Volley StringRequest
- Python 多线程是多鸡肋
- Eclipse清除workspace历史记录
- JS小总结
- 关于使用友盟的一些经验
- 线程同步之死锁
- 算法与数据结构基础----表,栈和队列(外加map用法)
- 欢迎使用CSDN-markdown编辑器
- Hibernate中用注解配置一对多双向关联和多对一单向关联