Skip to content
liujingxing edited this page Oct 30, 2022 · 14 revisions

请求三部曲

RxHttp.get("/service/...") //第一步,确定请求方式,可以选择postForm、postJson等方法
    .asString()            //第二步,使用asXXX系列方法确定返回类型
    .subscribe(s -> {      //第三步, 订阅观察者
        //成功回调
    }, throwable -> {
        //失败回调
    });

任意请求,任意返回数据类型,皆遵循请求三部曲

任意请求,任意返回数据类型,皆遵循请求三部曲

任意请求,任意返回数据类型,皆遵循请求三部曲

image.png

get请求

RxHttp.get("/service/...")     
    .add("key", "value")
    .toObservableString()                     
    .subscribe(s -> {               
        //成功回调
    }, throwable -> {
        //失败回调
    });

post Form请求

RxHttp.postForm("/service/...")       //发送表单形式的post请求
    .add("key", "value")
    .toObservableString()
    .subscribe(s -> {
        //成功回调
    }, throwable -> {
        //失败回调
    });

初始化

初始化是非必须的,如下:

RxHttpPlugins.init(OkHttpClient)      //自定义OkHttpClient对象                               
    .setDebug(boolean, boolean, int)      //是否开启调试模式、是否分段打印、打印json数据缩进空格数量     
    .setCache(File, long, CacheMode)  //配置缓存目录,最大size及缓存模式              
    .setExcludeCacheKeys(String...)   //设置一些key,不参与cacheKey的组拼                          
    .setResultDecoder(Function)       //设置数据解密/解码器,非必须                                  
    .setConverter(IConverter)         //设置全局的转换器,非必须                                    
    .setOnParamAssembly(Consumer);    //设置公共参数/请求头回调                                                                   

如需要添加拦截器等其他业务需求,则可调用init方法进行初始化,不初始化或者传入null即代表使用默认OkHttpClient对象,建议在Application中初始化,默认的OkHttpClient对象在RxHttpPlugins类中可以找到,如下:

private static OkHttpClient getDefaultOkHttpClient() {                              
    return new OkHttpClient.Builder().build();                                                                   
}                                                                                   

虽然初始化是非必须的,但是建议大家传入自定义的OkHttpClient对象,一来,自定义的OkHttpClient能最大化满足自身的业务;二来,随着RxHttp版本的升级,默认的OkHttpClient可能会发生变化(虽然可能性很小),故建议自定义OkHttpClient对象传入RxHttp。