个性化配置
如果需要,我们可以做一些个性化的配置,但是所有的配置项都不是必须的。
配置的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();
至此,个性化配置的相关介绍全部介绍完毕,在左侧菜单栏还提供了一些常用的较复杂的配置教程,请移步查看。