OKGO&Glide框架

OKGO

OKGO主要功能

基本的get、post、put、delete、head、options、trace、patch八種請求
支持upString,upJson,upBytes,upFile等up類方法上傳特定數據
支持一個key上傳一個文件,也可以一個key上傳多個文件,也可以多文件和多參數一起上傳
大文件下載和下載進度回調
大文件上傳和上傳進度回調
支持cookie的自動管理,並可自定義cookie管理策略
支持緩存模式,不僅支持http緩存協議,也支持自定義緩存策略
支持重定向
支持自定義超時自動重連次數
支持鏈式調用
支持https訪問,支持雙向認證
支持根據tag取消請求,也可全部取消
支持自定義Callback,自動解析網絡數據

依賴、注意事項

依賴:

compile 'com.lzy.net:okgo:3.0.4'

注意:

無論做什麼請求,第一行的泛型一定要加!!!

GET&POST&UPLOAD&DOWNLOAD&GETIMG

POST請求數據

private void dopost() {
    HashMap<String,String> map=new HashMap<>();
    map.put("phone","123456");
    map.put("passwd","12346");
    OkGo.<String>post("https://www.apiopen.top/createUser?key=00d91e8e0cca2b76f515926a36db68f5&")
            .params(map)
            .execute(new StringCallback() {
        @Override
        public void onSuccess(Response<String> response) {
            Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
        }
    });
}

POST上傳文件

private void upload() {
    OkGo.<String>post("http://169.254.113.244/hfs/")
            .isMultipart(true)
            .params("file",new File("/sdcard/haha.jpg"),"zizi.jpg")
            .execute(new StringCallback() {
                @Override
                public void uploadProgress(Progress progress) {
                    super.uploadProgress(progress);
                    progressBar1.setProgress((int) (progress.fraction*100));
                }

                @Override
                public void onSuccess(Response<String> response) {
                    Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
                }
            });
}

GET請求JSON

public void getString(){
    OkGo.<String>get("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1")
            .execute(new StringCallback() {
        @Override
        public void onSuccess(Response<String> response) {
            String body = response.body();
            Toast.makeText(MainActivity.this, ""+body, Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onError(Response<String> response) {
            super.onError(response);
        }
    });
}

GET請求圖片

private void getBitmap() {
    OkGo.<Bitmap>get("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=486958716,243120904&fm=26&gp=0.jpg")
            .execute(new BitmapCallback() {
                @Override
                public void onSuccess(Response<Bitmap> response) {
                    Bitmap body = response.body();
                    imageView.setImageBitmap(body);
                    Toast.makeText(MainActivity.this, ""+body.getByteCount(), Toast.LENGTH_SHORT).show();
                }
            });
}

下載文件

private void getFile() {
    OkGo.<File>post("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
            .execute(new FileCallback() {
                @Override
                public void onSuccess(Response<File> response) {
                    File body = response.body();
                }

                @Override
                public void onStart(Request<File, ? extends Request> request) {
                    super.onStart(request);
                }

                @Override
                public void onError(Response<File> response) {
                    super.onError(response);
                }

                @Override
                public void onFinish() {
                    super.onFinish();
                }

                @Override
                public void uploadProgress(Progress progress) {
                    super.uploadProgress(progress);
                }

                @Override
                public void downloadProgress(Progress progress) {
                    super.downloadProgress(progress);
                    progressBar2.setProgress((int) (progress.fraction*100));
                }
            });
}

Glide框架

三層緩存機制

內存—>SD卡—>網絡

加載本地SD卡圖片/網絡圖片/資源圖片/視頻/GIF動圖

//視頻只可以加載一幀
Glide .with(this).load(url).into(imageView);

加載圓形頭像

 Glide.with(this)
        .load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1562587162663&di=58b961a5726901f5d3b97f8924ddc189&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201811%2F10%2F20181110102045_jwqny.jpg")
        .apply(RequestOptions.bitmapTransform(new CircleCrop()))
        .into(imageView);

加載圓角頭像

Glide.with(this)
        .load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1562587162663&di=58b961a5726901f5d3b97f8924ddc189&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201811%2F10%2F20181110102045_jwqny.jpg")
        .apply(RequestOptions.bitmapTransform(new RoundedCorners(100)))
        .into(imageView);

設置佔位符及加載失敗圖片

  Glide.with(this)
     .load("http://hbimg.b0.upaiyun.com/9852feef26dcba3d807282aa5dff561b1e223de85b027-Tzv0x0_fw658")
     .apply(RequestOptions.bitmapTransform(new RoundedCorners(20))
     .error(R.mipmap.error)//加載失敗圖片
     .placeholder(R.drawable.ic_launcher_background))//佔位符圖片
     .into(iv);

代碼清除緩存

Glide.get(GlideActivity.this).clearMemory();//清除內存緩存
new Thread(new Runnable() {
                        @Override
                        public void run() {
                            Glide.get(GlideActivity.this).clearDiskCache();//清除SD卡緩存
                        }
                    }).start();
                   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章