登录 立即注册
安币:

使用的OkHttp 封装使用回调更新UI 上传下载进度更新

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-7-7 15:39:12
Tag:
立即下载
收藏

项目介绍:

游客,如果您要查看本帖隐藏内容请回复


项目中使用的OkHttp 封装使用回调更新UI 上传下载进度更新



GIF.gif



使用方法如下



Get 请求



[Java] 查看源文件 复制代码
 Request request=new Request.Builder()
            .get()
            .tag(this)
            .url(\"http:[url]www.baidu.com[/url]\")
            .build();

    DOkHttp.getInstance().getData4Server(request, new OkHttpUtil.MyCallBack() {
        @Override
        public void onFailure(Request request, IOException e) {

        }

        @Override
        public void onResponse(String json) {
            changeUI();
        }
    });


Post 请求



[Java] 查看源文件 复制代码
RequestBody requestBody=new FormEncodingBuilder()
            .add(\"key\",\"value\")
            .addHeader(COOKIE, sessionId)  //cookie添加
            .build();

    Request request=new Request.Builder()
            .post(requestBody)
            .tag(this)
            .url(\"http:[url]www.baidu.com[/url]\")
            .build();

    DOkHttp.getInstance().getData4Server(request, new OkHttpUtil.MyCallBack() {
        @Override
        public void onFailure(Request request, IOException e) {

        }

        @Override
        public void onResponse(String json) {
            changeUI();
        }
    });


download progress监听



[Java] 查看源文件 复制代码
    Request request=new Request.Builder()
            .tag(this)
            .get()
            .url(\"http://7xnbj0.com1.z0.glb.clouddn.com/IMG_1919.jpg\")
            .build();

    DOkHttp.getInstance().download4ServerListener(request, new DOkHttp.MyCallBack_Progress() {
        @Override
        public void onFailure(Request request, IOException e) {

        }

        @Override
        public void onResponse(Response response) {
            file=FileUtils.saveFile2Local(response,dir,\"download.jpg\");
            progressDialog.dismiss();
        }
    }, new DOkHttp.UIchangeListener() {
        @Override
        public void progressUpdate(long bytesWrite, long contentLength, boolean done) {
            int progress= (int) (bytesWrite*100/contentLength);
            Log.e(\"Download\",progress+\"\");

            progressDialog.setProgress(progress);

            tv_show.append(progress+\"\n\");
        }
    });


upload progress监听



[Java] 查看源文件 复制代码
    MultipartBuilder mb = new MultipartBuilder();
    mb.type(MultipartBuilder.FORM);
    mb.addFormDataPart(\"user_id\", \"74\");
    mb.addFormDataPart(\"user_head\", file.getName(), RequestBody.create(null, file));
    RequestBody requestBody = mb.build();

    String url=\"接口地址\";

    DOkHttp.getInstance().uploadPost2ServerProgress(this,url,requestBody,new DOkHttp.MyCallBack(){

        @Override
        public void onFailure(Request request, IOException e) {
            tv_show.setText(e.getMessage());
        }

        @Override
        public void onResponse(String json) {
            progressDialog.dismiss();
            tv_show.setText(json);
        }
    },new DOkHttp.UIchangeListener(){

        @Override
        public void progressUpdate(long bytesWrite, long contentLength, boolean done) {
            int progress= (int) (bytesWrite*100/contentLength);

            progressDialog.setProgress(progress);

            tv_show.append(progress+\"\n\");
        }
    });

相关源码推荐:

我来说两句
所有评论(156)
yu1441 2016-7-7 16:10:49
不错
回复
1377482711 2016-7-7 16:15:11
学习
回复
1377482711 2016-7-7 16:15:21
学习学习!
回复
孙林 2016-7-7 16:16:46
感谢分享,安卓巴士有你更精彩:)
回复
孙林 2016-7-7 16:17:13
很给力,安卓巴士有你更精彩!
回复
snowqoo228 2016-7-7 16:36:59
感谢大神~
回复
橘子汽水1009 2016-7-7 16:44:26
使用的OkHttp 封装使用回调更新UI 上传下载进度更新
回复
上传代码
查看数:5911 收藏数:22 下载数: 点赞数:0
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表