这几个月接触了几个项目,对于网络这一块都需要进行会话的保持,这样做也有很多好处,比如说请求的时候我们可以不用携带用户相关的敏感数据而服务端就能够识别,这里涉及到session和cookie相关不做介绍.
1.第一个,继承request,自定义一个request
在这里我们需要关注的主要有两个方法.
第一个是parseNetworkResponse,显而易见的这里我们需要将网络返回的二进制数据解析封装成我们需要的java实体类,这个方法的调用时在子线程执行的,在这个解析数据可以避免界面卡顿.
第二个是deliverResponse,这里对结果数据进行一次分发,这个数ui线程执行的,我们可以在这里对网络返回的结果进行一次统一的过滤,比如所登录失效了,这是在每个接口都有可能返回的,在这里过滤可以减少工作量,如果不需要截断,调用listener的onResponse返回结果
@Override protected Response<T> parseNetworkResponse(NetworkResponse response) { T t = null; if (response.statusCode == 200) { try { String c = response.headers.get("set-Cookie"); if (c != null) cookie = response.headers.get("set-Cookie"); String json = new String(response.data, HttpHeaderParser.parseCharset(response.headers, Constant.CHARSET));