OKgo:

本文介绍了如何导入Okgo库并利用其进行网络请求。Okgo基于OkHttp,无需额外设置拦截器。重点讲解了Okgo的参数传递、回调方法以及如何进行GET和POST请求,同时详细阐述了如何进行文件下载操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入依赖:implementation ‘com.lzy.net:okgo:3.0.4’

Okgo的底层是Okhhttp (拦截器 不用写 自带)
Okgo中<……>是它的类型 注意 不同的用途不要写错
Okgo中.params(请求体),.execute(Callback())中重写的方法有:{

 @Override
           public void onStart(Request<Object, ? extends Request> request) {
               开始
           }

           @Override
           public void onSuccess(Response<Object> response) {
               成功
           }

           @Override
           public void onCacheSuccess(Response<Object> response) {
                        
           }

           @Override
           public void onError(Response<Object> response) {
                 失败(错误)
           }

           @Override
           public void onFinish() {
                 完成
           }

           @Override
           public void uploadProgress(Progress progress) {
                    上传时候的进度条
           }

           @Override
           public void downloadProgress(Progress progress) {
                   下载时候的进度条
           }

           @Override
           public Object convertResponse(okhttp3.Response response) throws Throwable {
               return null;
           }

}

下载图片:

 button_img.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            OkGo.<Bitmap>get("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")
                    .execute(new BitmapCallback() {
                        @Override
                        public void onSuccess(Response<Bitmap> response) {
                            imageView.setImageBitmap(response.body());
                        }

                        @Override
                        public void onError(Response<Bitmap> response) {
                            super.onError(response);
                            Toast.makeText(MainActivity.this, "no", Toast.LENGTH_SHORT).show();
                        }
                    });
        }
    });

get请求

        button_a.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            OkGo.<String>get("")
                    .execute(new StringCallback() {
                        @Override
                        public void onSuccess(Response<String> response) {
                            Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onError(Response<String> response) {
                            super.onError(response);
                            Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();
                        }
                    });
        }
    });

post请求

   //请求体
    final HashMap<String, String> map = new HashMap<>();
        map.put("","");
        map.put("","");
        button_b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            OkGo.<String>post("")
                    .params(map)
                    .execute(new StringCallback() {
                        @Override
                        public void onSuccess(Response<String> response) {
                            Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onError(Response<String> response) {
                            super.onError(response);
                            Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();
                        }
                    });
        }
    });
    ```
**上传:**
    button_c.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        OkGo.<String>post("http://169.254.184.179/hfs/").isMultipart(true).params("file",new File("/sdcard/怪声飘过.mp3"),"a.mp3")
                .execute(new StringCallback(){
                    @Override
                    public void onSuccess(Response<String> response) {
                        Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
                    }

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

                    @Override
                    public void uploadProgress(Progress progress) {
                        super.uploadProgress(progress);
                        //progress.fraction 获得当前上传进度 范围0-1
                        bar_a.setProgress((int) (progress.fraction*100));
                    }
                });
    }
});
```

下载:(注意类型 File)

        button_d.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            OkGo.<File>get("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")
                    .execute(new FileCallback("/sdcard/","a.jpg") {
                        @Override
                        public void onSuccess(Response<File> response) {
                            Toast.makeText(MainActivity.this, "ok", Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void downloadProgress(Progress progress) {
                            super.downloadProgress(progress);
                            float fraction = progress.fraction;
                            bar_b.setProgress((int) (fraction*100));
                        }
                    });
        }
    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值