OkHttp 上传进度监听

本文介绍如何在OkHttp中实现文件上传的进度监听。通过自定义ExMultipartBody类,继承RequestBody并作为MultipartBody的代理,利用writeTo方法获取上传字节长度,实时回调进度。详细阐述了实现步骤及使用方法。
摘要由CSDN通过智能技术生成

1.自定义ExMultipartBody 继承自 RequestBody,该类作为MultipartBody类的代理类。因为MultipartBody是final类,无法被继承。

public class ExMultipartBody extends RequestBody {


    private MultipartBody mMultipartBody;
    private UploadProgressListener mProgressListener;

    private long mCurrentLength;

    public ExMultipartBody(MultipartBody multipartBody) {
        this.mMultipartBody = multipartBody;
    }

    public ExMultipartBody(MultipartBody multipartBody, UploadProgressListener progressListener) {
        this.mMultipartBody = multipartBody;
        this.mProgressListener = progressListener;
    }

    @Override
    public MediaType contentType() {
        return mMultipartBody.contentType();
    }

    @Override
    public long contentLength() throws IOException {
        return mMultipartBody.contentLength();
    }

    @Override
    public void writeTo(BufferedSink sink) throws IOException {


        //这里需要另一个代理类来获取写入的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值