Android 開源架構 ( 二 ) 基於OkHttp進一步封裝的okhttp-utils介紹

來源:互聯網
上載者:User

標籤:error:   ora   ttext   exec   nts   pat   技術分享   ase   cas   

  okhttp-utils是張鴻洋是基於OkHttp封裝的架構庫。實際工作中,使用的不多,對於小型項目的網路請求和檔案傳輸可以考慮直接使用。否則還是基於主流的OkHttp+Retrift+RxJava架構。

  對於OkHttp使用,可以自己根據自己項目需要,做一些封裝。如果應付手頭臨時項目,可以借鑒GitHub上一些開源OkHttp封裝庫.只要去GitHub上搜尋下OkHttp 會出來很多封裝的架構。

  分析okhttp-utils使用,只是用於自己學習瞭解。

一.將okhttp-utils當做module引入項目中

    

二.okhttp-utils引入到項目中檔案清單目錄:

        

三.okhttp-utils 基本使用  1. //get 請求資料
OkHttpUtils        .get()        .url(url)        .id(100)        .build()        .execute(new MyStringCallback());
  2.//post 請求資料
OkHttpUtils        .postString()        .url(url)        .mediaType(MediaType.parse("application/json; charset=utf-8"))        .content(new Gson().toJson(new User("zhy", "123")))        .build()        .execute(new MyStringCallback());        
  3.//上傳檔案
OkHttpUtils        .postFile()        .url(url)        .file(file)        .build()        .execute(new MyStringCallback());
  4.//載入圖片
OkHttpUtils        .get()        .url(url)        .tag(this)        .build()        .connTimeOut(20000)        .readTimeOut(20000)        .writeTimeOut(20000)        .execute(new BitmapCallback()        {            @Override            public void onError(Call call, Exception e, int id)            {                mTv.setText("onError:" + e.getMessage());            }            @Override            public void onResponse(Bitmap bitmap, int id)            {                Log.e("TAG", "onResponse:complete");                mImageView.setImageBitmap(bitmap);            }        });    
  5.//上傳單個檔案
OkHttpUtils.post()//        .addFile("mFile", "messenger_01.png", file)        .url(url)        .params(params)//帶表單資料        .headers(headers)        .build()        .execute(new MyStringCallback());    
  6.//上傳多個檔案
OkHttpUtils.post()        .addFile("mFile", "messenger_01.png", file)        .addFile("mFile", "test1.txt", file2)        .url(url)        .params(params)//帶表單資料        .build()        .execute(new MyStringCallback());    
  7.//下載檔案
OkHttpUtils        .get()        .url(url)        .build()        .execute(new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(), "gson-2.2.1.jar")        {            @Override            public void onBefore(Request request, int id)            {            }            @Override            public void inProgress(float progress, long total, int id)            {                //進度條顯示                mProgressBar.setProgress((int) (100 * progress));                Log.e(TAG, "inProgress :" + (int) (100 * progress));            }            @Override            public void onError(Call call, Exception e, int id)            {                Log.e(TAG, "onError :" + e.getMessage());            }            @Override            public void onResponse(File file, int id)            {                Log.e(TAG, "onResponse :" + file.getAbsolutePath());            }        });    
  定義的公用回調方法:
public class MyStringCallback extends StringCallback    {        @Override        public void onBefore(Request request, int id)        {        }        @Override        public void onAfter(int id)        {        }        @Override        public void onError(Call call, Exception e, int id)        {            e.printStackTrace();        }        @Override        public void onResponse(String response, int id)        {            Log.e(TAG, "onResponse:complete");            mTv.setText("onResponse:" + response);            switch (id)            {                case 100:                    Toast.makeText(MainActivity.this, "http", Toast.LENGTH_SHORT).show();                    break;                case 101:                    Toast.makeText(MainActivity.this, "https", Toast.LENGTH_SHORT).show();                    break;            }        }        @Override        public void inProgress(float progress, long total, int id)        {            Log.e(TAG, "inProgress:" + progress);            mProgressBar.setProgress((int) (100 * progress));        }    }        

 

Android 開源架構 ( 二 ) 基於OkHttp進一步封裝的okhttp-utils介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.