Android网络轻量级封装库

目前Android开发过程中的网络框架层出不穷,选择的方式很广。目前很多服务端开发也进入了Restful API接口化,对于Restful API的接口建议读者使用Retrofit框架比较好,本文是主要针对非Restful API的一个轻量级网络封装库,并且删除了其他的请求方式仅保留了GET/POST请求,当然该库对于Restful API,照样可以使用。
欢迎加入交流群:微信群(AndroidRunner )、QQ群(314896948)
欢迎关注微信公众号:AndroidRunner

网络封装主要基于是okhttp2.7.5,okio1.8.0,至于okhttp3,读者可以在这基础上改造,修改几个小地方即可,由于兼容使用cookie、https双向认证,该库仍然使用的是2.x版本okhttp,之前尝试过升级到okhttp3,但是升级后在cookie上支持没有达到项目中需要的效果,作者独特喜欢Square公司出品的框架,真心一个赞,推荐读者了解并使用,其他主流与Android相关的框架比如图片加载picasso、注解依赖框架dagger、事件解耦otto、内存泄露检测leakcanary等等,当然Retrofit也是他家出品的。好了闲话不扯,进入正题,上干货。

网络库主要包含两层:

  • 基于okhttp的一层封装,主要是关于okhttp的一些配置和请求的封装;
  • 另外一层就是提供给业务逻辑调用的管理类,这一层尽量力求调用者方便简单能够用一个方法调用完成网络的交互。

依赖库

compile 'com.squareup.okhttp:okhttp:2.7.5' //okhttp
compile 'com.squareup.okio:okio:1.8.0'    //okio
compile 'com.alibaba:fastjson:1.2.7'     //fastjson 

调用##

/** GET */
public static void get(String url, IRequestCallback iRequestCallback);

/** GET-Silence */
public static void getSilence(String url, IRequestCallback iRequestCallback) ;

/** POST */
public static void post(String url, Map<String, String> paramMap, IRequestCallback iRequestCallback);

/** POST-Silence */
public static void postSilence(String url, Map<String, String> paramMap, IRequestCallback iRequestCallback);

/** download */
public static void download(String url, String filePath, IRequestCallback iRequestCallback);

/** download-Silence */
public static void downloadSilence(String url, String filePath, IRequestCallback iRequestCallback);

/** upload */
public static void upload(String url, Map<String, String> paramMap, Map<String, File> fileMap, IRequestCallback iRequestCallback);

/** upload-Silence */
public static void uploadSilence(String url, Map<String, String> paramMap, Map<String, File> fileMap, IRequestCallback iRequestCallback);

调用示例##

String url = "http://www.baidu.com";
NetManager.get(url, new IRequestCallback<String>() {//<T> T can be a Javabean
   @Override
   public void onFailure(Exception e) {
       // handle onFailure here
       mContent.setText("error!");
   }

   @Override
   public void onSuccess(String string) {
       // handle onSuccess here
       mContent.setText(string);
   }
});

具体封装逻辑可以查看源码。

源码demo地址 : http://download.csdn.net/detail/lzj922718/9540493

推荐阅读更多精彩内容