Android基于OkHttpUtils网络请求的二次封装

时间:2021-05-20

OkHttpUtils网络请求为什么进行二次封装

1、减少代码量
2、后期换网络处理框架方便

二次封装的实现原理

1、将网络请求提取在一个方法中
2、对里面的可变参数,可以通过参数传递过去,也可以提供一个set方法传递过去
3、对于请求失败和成功,我们可以使用接口回调,让调用该方法的对象处理

封装后的网络处理类的功能

1、网络请求
2、xml数据转换成javaBean

每一个处理网络请求的ListView都要处理的3数据方法

1、初始化数据
2、下拉刷新数据
3、上拉加载数据

封装前的代码

/** * 3,加载更多 * 注意事项: * 请求成功数据更新之后,要关闭SpringView */ private void onDealLoadmore() { //资讯的网络请求地址 String newsUrl = Constant.NEWS_URL; //http:// * Description:网络请求和数据解析 */public class NewsPagerProtocol { private int mCurrentPageIndex; public void setCurrentPageIndex(int currentPageIndex) { mCurrentPageIndex = currentPageIndex; } public void loadData(final Callback callback) { //资讯的网络请求地址 String newsUrl = Constant.NEWS_URL; //http:///action/api/news_list?pageIndex=0&catalog=1&pageSize=20 //网络请求 OkHttpUtils .get() .url(newsUrl) .addParams("pageIndex", mCurrentPageIndex + "")//固定 .addParams("catalog", "1")//固定,1代表资讯 .addParams("pageSize", "20")//因为,一页加载20条数据 .build() .execute(new StringCallback() { @Override public void onError(Call call, Exception e, int id) { //因为返回失败处理的请求不一样,所以不处理,交给调用的方法处理 callback.onError(call, e, id); } @Override public void onResponse(String response, int id) { //请求成功,将字符串转为javaBean,并获取里面的泛型为News的集合 NewsList newsList = XmlUtils.toBean(NewsList.class, response.getBytes()); //将转换后的数据通过接口回调,返回给调用方法的 callback.onResponse(newsList, id); } }); } public interface Callback { public void onError(Call call, Exception e, int id); public void onResponse(NewsList newsList, int id); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章