第四单元 OkGo框架

作用:

网络请求额框架(与OKhttp类似)

功能:

上传、下载(图片、文件、字符串、mp3)

案例:
1.get下载

下载文件

  /**
     * 下载文件
     */
    public static void download(){
        OkGo.<File>get("http://169.254.38.92/service/").execute(new FileCallback("/mnt/sdcard","heiheihei.mp3") {//存储路径、文件名
            @Override
            public void onSuccess(Response<File> response) {
                File body = response.body();
                Log.i("TAG", "onSuccess: "+body);
            }

            @Override
            public void downloadProgress(Progress progress) {
                super.downloadProgress(progress);
                //如何拿到当前的下载进度
                Log.i(TAG, "进度为"+progress);
            }
        });
    }

下载字符串

  //下载字符串
        public static void downLoadJson(String url){
        OkGo.<String>get(url).execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                String json=response.body();
                Log.i("TAG", "onSuccess: "+json);
    
            }
    
            @Override
            public void downloadProgress(Progress progress) {
                super.downloadProgress(progress);
                Log.i(TAG, "进度为"+progress);
            }
        });
    
        }

下载图片

 public static void downLoadImage(String url, final Context context, final ImageView imageView){
        OkGo.<Bitmap>get(url).execute(new BitmapCallback() {
            @Override
            public void onSuccess(Response<Bitmap> response) {
                Bitmap body = response.body();
                Log.i("TAG", "成功: "+body);
                RequestOptions requestOptions=new RequestOptions();
                requestOptions.circleCrop();
                Glide.with(context).load(body).apply(requestOptions).into(imageView);
            }

            @Override
            public void uploadProgress(Progress progress) {
                super.uploadProgress(progress);
                Log.i(TAG, "进度为"+progress);
            }
        });
    }

//post 上传

//post 上传
public  void uploadfile(){
    //<结果泛型>
    OkGo.<String>post("").isMultipart(true).params("上传文件",new File("/mnt/sdcard/abc.mp4"),"文件名").
            execute(new StringCallback() {
                @Override
                public void onSuccess(Response<String> response) {
                    Log.i("结果", "onSuccess: "+response.body());

                }

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

带解析

 /**
     * 带解析
     *
     */

    public static<T> void fromJson(String url, final Class c, final ReturnInterface returnInterface){
        OkGo.<String>get(url).execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                String json = response.body();
                Gson gson=new Gson();
                Object o = gson.fromJson(json, c);
                returnInterface.success((T)o);
            }
        });
    }
}

接口

public interface ReturnInterface<T> {
    public void success(T o);
}
效果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值