超时配置
如果不设置,默认全局超时时间是10s。
NoHttp.initialize(this, new NoHttp.Config()
.setConnectTimeout(30 * 1000) // 全局连接超时时间,单位毫秒。
.setReadTimeout(30 * 1000) // 全局服务器响应超时时间,单位毫秒。
);
配置缓存,
默认是开启状态,且保存在数据库。
- 设置缓存到数据库、禁用缓存
NoHttp.initialize(this, new NoHttp.Config() ... .setCacheStore( new DBCacheStore(this) // 配置缓存到数据库。 .setEnable(true) // true启用缓存,fasle禁用缓存。 ) );
- 设置缓存到本地SD卡
如果你想缓存数据到SD卡,那么你需要考虑6.0及以上系统的运行时权限,推荐你看这篇文章:Android6.0运行时权限最佳实践。NoHttp.initialize(this, new NoHttp.Config() ... .setCacheStore( new DiskCacheStore(this) // 配置缓存到SD卡。 ) );
配置Cookie
默认是开启状态,保存数据库,NoHttp暂时没有提供保存在其它位置的默认实现,开发者可以新建一个类,实现java
自带的的CookieStore
接口。
NoHttp.initialize(this, new NoHttp.Config()
...
.setCookieStore(
new DBCookieStore(this)
.setEnable(false) // true启用自动维护Cookie,fasle禁用自动维护Cookie。
)
);
配置网络层
NoHttp的网络层是通过NetworkExecutor
接口来配置的,内部提供了一个基于HttpURLConnection
的接口实现类URLConnectionNetworkExecutor
,在NoHttp
项目中用另一个module
提供了一个基于OkHttp
的接口实现类OkHttpNetworkExecutor
,二者选其一即可,关于二者该如何使用选择请看项目如何引入NoHttp。
值得注意的是:切换了NoHttp的网络底层后,NoHttp的上层代码不需要任何改动,你的应用层代码也不需要任何改动。
默认采用HttpURLConnection
的实现做底层,既URLConnectionNetworkExecutor
。
NoHttp.initialize(this, new NoHttp.Config()
...
.setNetworkExecutor(new URLConnectionNetworkExecutor()) // 使用HttpURLConnection做网络层。
);
如果要使用OkHttp作为网络层,请在app的gradle中添加依赖:
compile "com.yanzhenjie.nohttp:okhttp:1.1.0"
然后在初始化的时候这么做:
NoHttp.initialize(this, new NoHttp.Config()
...
.setNetworkExecutor(new OkHttpNetworkExecutor()) // 使用OkHttp做网络层。
);