EasyHttp
特性
支持Get请求
支持Post请求
Get/Post请求完美支持String,Json,自定义对象返回
Get支持全局缓存设置及不同请求不同缓存设置
支持文件下载及下载管理
支持文件下载的断点续传
支持文件上传
使用简单;轻量级代码;结构清晰
基于okhttp3
下载管理数据库使用greendao
最新版本
v0.6.0 - 2017.02.27 - Get/Post请求完美支持String,Json,自定义对象返回;下载模块添加异常检测及容错处理
v0.5.0 - 2017.02.21 - 初版发布,支持Get、Post、下载、上传、断点续传、不同缓存策略等
ScreenShot
使用指南
With Gradle
在全局build.gradle文件的repositories添加如下所示配置:
jcenter()
在module的build.gradle文件的dependencies区域内添加如下所示配置:
compile 'com.yang.easyhttp:easyhttp:0.6.0'
初始化
在Applicaiton里进行初始化。
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化HttpClient.
EasyHttpClient.init(this);
// 初始化下载环境.optional.
EasyHttpClient.initDownloadEnvironment(2);
}
}
Get 请求
EasyHttp提供EasyHttpClient.get接口用来异步请求网络数据。
返回自定义对象eg:
EasyHttpClient.get(url, new EasyCustomCallback() {
@Override
public void onStart() {//ui thread.
dialog.show();
}
@Override
public void onFinish() {//ui thread.
dialog.cancel();
}
@Override
public void onSuccess(Entity content) {//ui thread.
// ui operation using content object.
}
@Override
public void onFailure(Throwable error, String content) {//ui thread.
body.setText(content + "\n" +error.toString());
}
});
Get请求接口列表如下:
public static void get(String url, EasyCallback callback);
public static void get(String url, EasyRequestParams easyRequestParams, EasyCallback callBack);
public static void get(String url, int cacheType, EasyCallback callback);
public static void get(String url, EasyRequestParams easyRequestParams, int cacheType, EasyCallback callback);
返回的是Json对象时,可以使用EasyJsonCallback作为回调。
返回的是普通的字符串,可以使用EasyStringCallback作为回调。
EasyRequestParams用来设定请求的参数。
EasyCacheType用来设定每个请求的缓存类型。
Post请求
EasyHttp提供EasyHttpClient.post接口用来异步post数据。
EasyRequestParams params = new EasyRequestParams();
params.put("key1", "value1");
params.put("key2", "value2");
EasyHttpClient.post(postUrl,
params,
new EasyStringCallback() {
@Override
public void onStart() {
dialog.show();
}
@Override
public void onFinish() {
dialog.cancel();
}
@Override
public void onSuccess(String content) {
Toast.makeText(PostActivity.this, "提交成功", Toast.LENGTH_LONG);
result.setText(content);
}
@Override
public void onFailure(Throwable error, String content) {
Toast.makeText(PostActivity.this, "提交失败", Toast.LENGTH_LONG);
result.setText(content + "\n" + error.getMessage());
}
}
);
Post请求接口列表如下:
public static void post(String url, EasyRequestParams easyRequestParams, EasyCallback callback)
同Get请求类似,返回的是Json数据,可以使用EasyJsonCallback类来作为回调。
返回的是普通的字符串,可以使用EasyStringCallback作为回调。
EasyRequestParams用来设定post的键值对。
Download File
初始化时可通过initDownloadEnvironment(int threadCount)来设定同时下载的数量。
跟下载相关的类包括:
EasyDownloadManager 负责管理下载任务
EasyDownloadTask 下载任务
EasyDownloadTaskListener 下载回调
EasyTaskEntity 任务的实体
EasyTaskStatus 下载的状态
关于下载的管理,可以参考sampe中的DownloadAdapter文件,实现了文件的下载,断点续传,进度展示等通用功能。
Upload File
EasyHttp提供EasyHttpClient.uploadFile接口用来上传文件。接口如下:
public static void uploadFile(String url, String filePath, EasyCallback callback)