个性化配置
如果需要,我们可以做一些个性化的配置,但是所有的配置项都不是必须的。
配置的Api是这样:
Kalle.setConfig(...);
开发者需要先构建一个配置对象实例:
KalleConfig config = KalleConfig.newBuilder()
...
.build();
Kalle.setConfig(config);
详细配置
配置工作线程执行器,如果不配置,将根据设备的CPU数量,计算出一个并发数量合适的线程池。
KalleConfig config = KalleConfig.newBuilder() ... .workThreadExecutor(Executor) .build();
配置主线程执行器,如果不配置,将会使用
Handler
自动生成一个。KalleConfig config = KalleConfig.newBuilder() ... .mainThreadExecutor(Executor) .build();
配置发送
Body
时的编码格式,如果不配置将会使用系统默认编码,目前常见的设备默认情况下都是UTF-8
:KalleConfig config = KalleConfig.newBuilder() ... .charset(Charset) .build();
添加全局
Header
,添加后会为每一个Request
添加这个头,除非开发者为某个Request
覆盖这个头的key
。KalleConfig config = KalleConfig.newBuilder() ... .addHeader(String, String) .build();
配置全局代理,配置后每一个
Request
都会使用这个代理,除非开发者为某个Request
设置空的代理或者指定其它代理:KalleConfig config = KalleConfig.newBuilder() ... .proxy(Proxy) .build();
配置全局
SSL
,Https
需要我们决定怎样创建SSLSocket
,同时告诉底层要信任哪些Host
,我们通过SSLSocketFactory
和HostnameVerifier
来做这两件事。KalleConfig config = KalleConfig.newBuilder() ... .sslSocketFactory(SSLSocketFactory) .hostnameVerifier(HostnameVerifier) .build();
配置全局
Request
连接服务器超时时间和读取响应数据超时时间。KalleConfig config = KalleConfig.newBuilder() ... .connectionTimeout(int, TimeUnit) .readTimeout(int, TimeUnit) .build();
添加全局参数,添加后会为每一个请求添加这个参数,对于
Url
类型的Request
,会把参数添加到url
中;对于Body
类型的Request
,会把参数添加到Body
中。暂不支持为Body
类型Request
添加全局url
参数。开发者可以为某个Request
覆盖这个参数的key
。KalleConfig config = KalleConfig.newBuilder() ... .addParam("name", "Kalle") .build();
例如某个请求中不需要这个全局参数时,调用removeParam()
为这个请求移除这个参数:
Kalle.get(url)
...
.removeParam("name")
...
配置全局
CacheStore
,用来增删改查缓存,如果不配置,将不会根据任何缓存模式对任何数据进行缓存。KalleConfig config = KalleConfig.newBuilder() ... .cacheStore(CacheStore) .build();
配置全局网络,用来让Kalle检查网络是否可用,如果不配置将会默认网络是可用的。
KalleConfig config = KalleConfig.newBuilder() ... .network(NetWork) .build();
配置全局连接生成工厂,决定底层使用
OkHttp
、UrlConnection
或者HttpClient
。KalleConfig config = KalleConfig.newBuilder() ... .connectFactory(ConnectFactory) .build();
配置全局
CookieStore
,用来增删改查Cookie
,如果不配置将不会自动管理Cookie
。KalleConfig config = KalleConfig.newBuilder() ... .cookieStore(CookieStore) .build();
添加全局拦截器,这里不做过多解释,具体使用方法请到拦截器查看。
KalleConfig config = KalleConfig.newBuilder() ... .addInterceptor(Interceptor) .addInterceptors(List<Interceptor>) .build();
配置全局数据转换器,数据转换器用来将服务器响应数据转化为开发者想要的格式,具体用法请参考转换器。
KalleConfig config = KalleConfig.newBuilder() ... .converter(Converter) .build();
至此,个性化配置的相关介绍全部介绍完毕,在左侧菜单栏还提供了一些常用的较复杂的配置教程,请移步查看。