network
基于OkHttp3网络框架
依赖导入
项目根目录
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
模块目录
dependencies {
implementation 'com.github.lavalike:network:0.0.1'
}
自定义全局配置
如未初始化,网络请求请写明全路径
Network.init(NetConfig.Builder().build());
NetConfig支持方法
public static class Builder {
public Builder baseUrl(String baseUrl);
public Builder netInterceptor(Interceptor interceptor);�
public Builder interceptor(Interceptor interceptor);
public CookieJar cookieJar;
public Builder retryOnConnectionFailure(boolean retry);
public Builder connectTimeout(long connectTimeout);
public Builder readTimeout(long readTimeout);
public Builder writeTimeout(long writeTimeout);
public Builder debug(boolean debug);
public NetConfig build();
}
请求类型
类型 | 继承关系 |
---|---|
GET | GetTask |
POST_JSON | PostJsonTask |
POST_FORM | PostFormTask |
UPLOAD | UploadTask |
网络请求Task支持方法
public interface Task {
void onSetupParams(Object... params);
String getApi();
Task put(String key, Object value);
Task putFile(String key, String filePath);
Task addHeader(String name, String value);
Task setTag(Object tag);
Task setLoadingPage(LoadingPage page);
Call exe(Object... params);
Call retry();
}
发起请求
1、使用可变参数形式请求
new TestTask(new LoadingCallback<EntityType>() {
@Override
public void onSuccess(EntityType data) {
}
}).exe("abc", 1, true);
重写onSetupParams方法手动处理参数
public class TestTask extends GetTask {
public <EntityType> TestTask(RequestCallback<EntityType> callback) {
super(callback);
}
@Override
public void onSetupParams(Object... params) {
put("param1", params[0]);
put("param2", params[1]);
put("param3", params[2]);
}
@Override
public String getApi() {
return "your api address";
}
}
2、链式传递参数
new TestTask(new ProgressCallback<String>() {
@Override
public void onSuccess(String data) {
}
@Override
public void onProgress(int progress) {
}
}).setTag(this)
.put("token", token)
.putFile("sourceFile", "file url")
.addHeader("","")
.exe();
无需重写onSetupParams方法
设置加载页
setLoadingPage(LoadingPage page)
注意:
1、page为null无效
2、page构造参数为null无效
1、使用默认加载页 DefaultLoadingPage
new TestTask(new LoadingCallback<String>() {
@Override
public void onSuccess(String data) {
}
}).setLoadingPage(new DefaultLoadingPage(recycler)).exe();
2、LoadingPage自定义成功延迟回调与加载时长
new DefaultLoadingPage(recycler).setDelay(3000).setDuration(2000)
3、自定义加载页
继承 AbsLoadingPage 并处理对应逻辑,如有疑问请参照 DefaultLoadingPage
错误输出
初始化配置时,debug 默认为 false,输出较为友好的统一提示,配置为 true 可输出具体错误信息
Network.init(new NetConfig.Builder()
.debug(true)
.build());