Okgo「建议收藏」

GET请求publicvoidgetString(){OkGo.<String>get(“http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1”).execute(newStringCallback(){@Override…

大家好,又见面了,我是你们的朋友全栈君。

GET请求

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);
            }
        });

    }

POST请求

 //post请求数据
    public  void dopost(){
        HashMap<String, String> map = new HashMap<>();
        map.put("phone","18233790750");
        map.put("passwd","345");
        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();
            }
        });
    }

下载显示进度条

//get下载文件
    public void getFile(){
        OkGo.<File>get("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
                .execute(new FileCallback("/sdcard/","aaaaa.mp4") {
            @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 downloadProgress(Progress progress) {
                super.downloadProgress(progress);
                //progress.fraction 获得当前上传进度 范围0-1
                bar.setProgress((int) (progress.fraction*100));
            }

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

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

上传显示进度条

//post上传文件
    private void upload() {
        OkGo.<String>post("http://172.21.79.88/hfs/").isMultipart(true).params("file",new File("/sdcard/来自天堂的魔鬼.mp3"),"ass.mp3")
        .execute(new StringCallback(){
            @Override
            public void onSuccess(Response<String> response) {
                Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
            }

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

请求图片

 //get请求图片
    public 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 bitmap = response.body();
                Toast.makeText(MainActivity.this, ""+bitmap.getByteCount(), Toast.LENGTH_SHORT).show();
            }
        });
    }

1.自定义回调接口

public abstract class JsonCallBack<T> extends AbsCallback<T> {

    private Type type;
    private Class clazz;

    public JsonCallBack(Type type) {
        this.type = type;
    }

    public JsonCallBack(Class t) {
        this.clazz = t;
    }

    public JsonCallBack() {

    }

    /**
     * 该方法是子线程处理,不能做ui相关的工作
     * 主要作用是解析网络返回的 response 对象,生成onSuccess回调中需要的数据对象
     */
    @Override
    public T convertResponse(Response response) throws Throwable {

        ResponseBody body = response.body();
        if (body == null) return null;

        T data = null;
        Gson gson = new Gson();
       String string = body.string();

        if (type != null) data = (T) gson.fromJson(string , type);
        if (clazz != null) data = gson.fromJson(string , clazz);
        return data;
    }

}

2.使用

 OkGo.<Cai>get("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1")
                        .execute(new JsonCallBack<Cai>(Cai.class) {
                            @Override
                            public void onSuccess(Response<Cai> response) {
                                Cai body = response.body();
                                Log.d("cai", "onSuccess: "+body);
                            }
                        });
————————————————
版权声明:本文为CSDN博主「_yao_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34178710/article/details/97628606
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128530.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 闭关看书

    闭关看书

    2021年8月6日
    59
  • 【深度思考】郑州java培训机构排名

    【深度思考】郑州java培训机构排名前言分布式,是程序员必备技能之一,在面试过程中属于必备类的,在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列,目前它的魅力是无穷的,对于Kafka的奥秘,还需要我们细细去探寻。要谈对Kafka有多熟悉,我相信还是阿里的大佬们最有发言权,所以今天分享的内容,就是Alibaba内部供应的“限量笔记”,关于Kafka的精髓全部写在这里面了,不得不感叹:不愧是Alibaba的技术官啊,真的服了!一、背景我们日常在电商网站购物时经常会遇到一些高并发的场景,例如电商App上经常出现的

    2022年10月3日
    2
  • 启动windows自动重启_windows下重启nginx

    启动windows自动重启_windows下重启nginxwindows中启动、重启nginx命令1.找到nginx的安装目录,在目录上cmd进入黑窗口;2.启动startnginx3.配置文件nginx.conf修改重装载命令nginx-sreload

    2022年8月13日
    4
  • 机器学习——决策树模型:Python实现

    机器学习——决策树模型:Python实现机器学习——决策树模型:Python实现欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你

    2022年10月19日
    3
  • 验证码识别(Tess4J初体验)

    验证码识别(Tess4J初体验)遇到一道机试题当时就懵逼了0.0查了好多资料,大体知道了基本的步骤:1.预处理2.灰度化3.二值化4.去噪5.分割6.识别还好题目要求不严格,可以使用开源程序。机智的我还真找到一个:Tesseract下面开始正文:Tess4J官方描述:AJavaJNAwrapperforTesseractOCRAPI.1.先去官网下载:http://

    2022年4月29日
    87
  • matlab插值函数的作用,matlab 插值函数[通俗易懂]

    matlab插值函数的作用,matlab 插值函数[通俗易懂]MATLAB中的插值函数为interp1,其调用格式为:yi=interp1(x,y,xi,’method’)其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量,’method’表示采用的插值方法,MATLAB提供的插值方法有几种:’method’是最邻近插值,’linear’线性插值;’spline’三次样条插值;’cubic’立方插值.缺省时表示线性插值注意:所…

    2022年6月3日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号