OkHttpUtils是一个非常好的网络协议框架,它是在OkHttp的基础上进行了二次封装。要使用这个类首先下载jar包,如下:
http://download.csdn.net/download/xxdw1992/10151070
Build.gradle配置:
compile 'com.zhy:okhttputils:2.6.2'
compile 'com.squareup.okhttp3:okhttp:3.6.0'
OkHttpUtils下载文件
OkHttpUtils.get().url("网址").build().execute(new FileCallBack("文件存储的路径","文件名") {
@Override
public void onError(Call call, Exception e, int i) {
if (NetConnectUtil.NetConnect(getActivity())) {
DialogNotileUtil.show(getActivity(), "服务器异常,文件下载失败");
} else {
DialogNotileUtil.show(getActivity(), "未连接到网络,文件下载失败");
}
Logs.e(tag + "331 " + e + " " + i);
dialoading.close();
}
@Override
public void onResponse(File file, int i) {
dialoading.setTv("下载完成");
dialoading.close();
Logs.v(tag + " 338 " + file.getAbsolutePath() + " " + i);
//下载完成后开始播放
videoURL(videoUrl);
}
@Override
public void inProgress(float progress, long total, int id) {
super.inProgress(progress, total, id);
myprogress = (int) (progress * 100);
Logs.v(progress + " " + myprogress);
// if (myprogress % 5 == 0) {
dialoading.setTv("下载进度:" + myprogress + "%");
// }
}
});
OkHttpUtils发送给服务器json
JSONObject jb = new JSONObject();
try {
jb.put("username", "");
jb.put("password", "");
} catch (JSONException e) {
Logs.d("127 " + e);
}
OkHttpUtils
.postString()
.url("")
.mediaType(MediaType.parse("application/json; charset=utf-8"))
.content(jb.toString())
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int i) {
}
@Override
public void onResponse(String s, int i) {
}
});
GET请求
POST请求
Post String
Post File
Post表单形式上传文件
自定义CallBack
目前内部包含StringCallBack,FileCallBack,BitmapCallback,可以根据自己的需求去自定义Callback,例如希望回调User对象:
通过parseNetworkResponse回调的response进行解析,该方法运行在子线程,所以可以进行任何耗时操作。
混淆
显示图片
上传下载的进度显示
HEAD、DELETE、PUT、PATCH
同步的请求
取消单个请求
根据tag取消请求
如有不懂可以参考以下文章: