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 {
//这里需要另一个代理类来获取写入的