个性化配置

如果需要,我们可以做一些个性化的配置,但是所有的配置项都不是必须的。

配置的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();
    
  • 配置全局SSLHttps需要我们决定怎样创建SSLSocket,同时告诉底层要信任哪些Host,我们通过SSLSocketFactoryHostnameVerifier来做这两件事。

    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();
    
  • 配置全局连接生成工厂,决定底层使用OkHttpUrlConnection或者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();
    

至此,个性化配置的相关介绍全部介绍完毕,在左侧菜单栏还提供了一些常用的较复杂的配置教程,请移步查看。

results matching ""

    No results matching ""