okhhtp 文件下载 java_Android 开发 框架系列 OkHttp文件下载功能实现(含断点续传)...

packageokhttpdemo.com.libs.net.httpBase;importandroid.util.Log;importorg.json.JSONObject;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.RandomAccessFile;importjava.nio.MappedByteBuffer;importjava.nio.channels.FileChannel;importokhttp3.Call;importokhttp3.Callback;importokhttp3.FormBody;importokhttp3.MediaType;importokhttp3.OkHttpClient;importokhttp3.Request;importokhttp3.RequestBody;importokhttp3.Response;importokhttp3.ResponseBody;importokhttpdemo.com.libs.net.httpBase.listener.HttpDownListener;/***@content: okhttp的下载功能工具类 (分别包含:1.无断点续传的get下载 2.有断点续传的get下载 3.无断点续传的post下载 4.有断点续传的post下载)

*@time:2018-12-12

*@build:z*/

public classOkHttpDownUtil {private static final String TAG = "OkHttpDownUtil";privateCall mCall;private long mAlreadyDownLength = 0;//已经下载长度

private long mTotalLength = 0;//整体文件大小

private int mSign = 0; //标记当前运行的是那个方法

private String mDownUrl;//下载网络地址

private File mPath;//文件保存路径

privateJSONObject mJson;private HttpDownListener mHttpDownListener;//下载进度接口回调

/*** 没有断点续传功能的get请求下载

*@paramdownUrl 下载网络地址

*@paramsaveFilePathAndName 保存路径*/

public void getDownRequest(final String downUrl, final File saveFilePathAndName, finalHttpDownListener listener) {

mSign= 1;

mDownUrl=downUrl;

mPath=saveFilePathAndName;

mHttpDownListener=listener;

mAlreadyDownLength= 0;

Request request= newRequest.Builder()

.url(mDownUrl)

.get()

.build();

mCall= OkHttpClientCreate.CreateClient().newCall(request);//构建了一个完整的http请求

mCall.enqueue(newCallback() {

@Overridepublic voidonFailure(Call call, IOException e) {if (mHttpDownListener != null) {

mHttpDownListener.onFailure(call, e);

}

}

@Overridepublic void onResponse(Call call, Response response) throwsIOException {

ResponseBody responseBody=response.body();

mTotalLength= responseBody.contentL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值