Android網(wǎng)絡輕量級封裝庫

目前Android開發(fā)過程中的網(wǎng)絡框架層出不窮,選擇的方式很廣。目前很多服務端開發(fā)也進入了Restful API接口化,對于Restful API的接口建議讀者使用Retrofit框架比較好,本文是主要針對非Restful API的一個輕量級網(wǎng)絡封裝庫,并且刪除了其他的請求方式僅保留了GET/POST請求,當然該庫對于Restful API,照樣可以使用。
歡迎加入交流群:微信群(AndroidRunner )、QQ群(314896948)
歡迎關注微信公眾號:AndroidRunner

網(wǎng)絡封裝主要基于是okhttp2.7.5,okio1.8.0,至于okhttp3,讀者可以在這基礎上改造,修改幾個小地方即可,由于兼容使用cookie、https雙向認證,該庫仍然使用的是2.x版本okhttp,之前嘗試過升級到okhttp3,但是升級后在cookie上支持沒有達到項目中需要的效果,作者獨特喜歡Square公司出品的框架,真心一個贊,推薦讀者了解并使用,其他主流與Android相關的框架比如圖片加載picasso、注解依賴框架dagger、事件解耦otto、內(nèi)存泄露檢測leakcanary等等,當然Retrofit也是他家出品的。好了閑話不扯,進入正題,上干貨。

網(wǎng)絡庫主要包含兩層:

  • 基于okhttp的一層封裝,主要是關于okhttp的一些配置和請求的封裝;
  • 另外一層就是提供給業(yè)務邏輯調(diào)用的管理類,這一層盡量力求調(diào)用者方便簡單能夠用一個方法調(diào)用完成網(wǎng)絡的交互。

依賴庫

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 

調(diào)用##

/** 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);

調(diào)用示例##

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

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容