网络请求框架(二):volley使用之自定义请求
来源:互联网 发布:白噪音app 知乎 编辑:程序博客网 时间:2024/05/28 15:43
一.导入volley的依赖或jar包
二.仿照StringRequest写一个自定义的请求对象,这样可以把json解析成需要的javabean
1.定义一个类继承request
public class MyRequest<T> extends Request<T> { private static final String TAG = "MyRequest"; //需要解析的json字符串的泛型 private Class<T> mClass; //解析成功后的接口对象,用于数据的回调 private Response.Listener<T> mSuccessListener; public MyRequest(String url, Class<T> clazz, Response.ErrorListener listener,Response.Listener<T> successListener) { super(url, listener); //通过构造函数,传入需要的字段 this.mClass=clazz; this.mSuccessListener=successListener; } @Override protected Response<T> parseNetworkResponse(NetworkResponse response) { Gson gson =new Gson(); //根据gson解析,把从网络获取的字节数据解析成javabean T t = gson.fromJson(new String(response.data), mClass); return Response.success(t, HttpHeaderParser.parseCacheHeaders(response)); } //数据的回调 @Override protected void deliverResponse(T t) { mSuccessListener.onResponse(t); }}
二.javaBean
<pre name="code" class="java">public class JavaBean { private static final String TAG = "JavaBean"; public int retcode; public List<DataBean> data; public List<Integer> extend; public static class DataBean { public int id; public String title; public int type; public List<ChildrenBean> children; public static class ChildrenBean { public int id; public String title; public int type; public String url; } }}
三.请求数据代码
public class MainActivity extends AppCompatActivity implements Response.ErrorListener, Response.Listener<JavaBean> { public static final String HOST = "http://192.168.56.1:8080/zhbj/categories.json"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /*volley请求三部曲 一.创建请求对象(解析数据成功或失败通过接口回调) 二.创建请求队列 三,添加请求到队列,发起请求 * * */ public void request(View view){ //创建请求对象 MyRequest<JavaBean> request=new MyRequest<>(HOST,JavaBean.class,this,this); //创建请求队列 RequestQueue queue = Volley.newRequestQueue(this); //添加请求 queue.add(request); } @Override public void onErrorResponse(VolleyError volleyError) { } @Override public void onResponse(JavaBean javaBean) { List<JavaBean.DataBean> data = javaBean.data; Toast.makeText(this,data.size()+"个数" , Toast.LENGTH_SHORT).show(); }}
0 0
- 网络请求框架(二):volley使用之自定义请求
- Android Volley使用之二:Volley请求网络图片
- 网络请求框架---Volley
- Volley网络请求框架
- 网络请求框架---Volley
- 网络请求框架-Volley
- Volley-----网络请求框架
- Volley网络请求框架
- Volley网络请求框架
- Volley网络请求框架
- Android网络请求框架Volley的使用
- Android网络请求框架:Volley简单使用
- android网络请求Volley框架的使用
- Volley网络请求框架的使用
- 使用Android Volley网络请求框架请求数据步骤
- Volley框架使用之请求大量图片
- 网络请求之Volley的使用
- android网络开源框架volley(二)——自定义你的请求对象
- AndroidStudion快捷键
- 周易正易 (2001刊行本影印_易學原理總論)
- 关于FileInputStream
- 【PAT乙级真题及训练集】1001. 害死人不偿命的(3n+1)猜想 (15)
- PAT 1009. Product of Polynomials (25)(多项式乘法)(待修改)
- 网络请求框架(二):volley使用之自定义请求
- Gym 100685E Epic Fail of a Genie(贪心)
- bundle
- HDFS的一些常问问题
- VIM编辑器之常用命令
- git pull 出现stoped 情况
- 应用句柄泄露分析实例
- MUI-最接近原生App体验的前端框架
- eclipse和as快捷键对比