1集成nohttp
1在build.gradle(app)中dependencies{}里面添加 。
implementation ‘com.yanzhenjie.nohttp:nohttp:1.1.11’
implementation ‘com.yanzhenjie.nohttp:okhttp:1.1.11’
2新建一个MyApplication 继承自Application 在onCreate()里面初始化nohttp框架(如果项目中已经有了自定义的Application,可以在对应里面做初始化操作,不用重新创建,可略过步骤3) 代码如下。
public class MyApplication extends Application {
private static MyApplication app;
public static boolean canShow = true;
@Override
public void onCreate() {
super.onCreate();
app = this;
initNet();
}
public static Application getAppInstance() {
return app;
}
private void initNet() {
// 初始化nohttp 网络框架
InitializationConfig nohttpConfig = InitializationConfig.newBuilder(MyApplication.getAppInstance())
// 设置全局连接超时时间,单位毫秒,默认10s。
.connectionTimeout(30 * 1000)
// 设置全局服务器响应超时时间,单位毫秒,默认10s。
.readTimeout(30 * 1000)
// 配置缓存,默认保存数据库DBCacheStore,保存到SD卡使用DiskCacheStore。
.cacheStore(
new DBCacheStore(this).setEnable(true) // 如果不使用缓存,设置setEnable(false)禁用。
)
// 配置Cookie,默认保存数据库DBCookieStore,开发者可以自己实现。
.cookieStore(
new DBCookieStore(this).setEnable(false) // 如果不维护cookie,设置false禁用。
)
// 配置网络层,URLConnectionNetworkExecutor,如果想用OkHttp:OkHttpNetworkExecutor。
.networkExecutor(new OkHttpNetworkExecutor())
// 全局通用Header,add是添加,多次调用add不会覆盖上次add。
.retry(3) // 全局重试次数,配置后每个请求失败都会重试x次。
.build();
NoHttp.initialize(nohttpConfig);
//日志
Logger.setDebug(true);// 开启NoHttp的调试模式, 配置后可看到请求过程、日志和错误信息。
Logger.setTag("NoHttpSample");// 打印Log的tag。
}
}
3在AndroidMainifest.xml里面的application里添加上一步MyApplication的引用
<application
...
android:name=".MyApplication"
...
>
</application>
2使用
1在项目中复制对应文件HttpRequestTool到放工具类的文件夹。
2设置对应的baseUrl ,在HttpRequestTool里面,可根据项目的不同,灵活变动。
3基本的网络请求,直接调用request方法 其中请求地址 url, 请求参数 Map<String,Object> params, 对应的context ,网络请求的tag, 回调 callBack 示例如下。
Map<String, Object> pramas = new HashMap<>