Skip to content

加解密

liujingxing edited this page Feb 25, 2023 · 6 revisions

1、加密

请求加密,需要自定义Param,非常简单,详情请查看自定义Param

2、解密

有些时候,请求会返回一大串的密文,此时就需要将密文转化为明文,直接来看代码,如下:

//设置数据解密/解码器                                               
RxHttpPlugins
    .init(OkHttpClient)
    .setResultDecoder(new Function<String, String>() {
        //每次请求成功,都会回调这里,并传入请求返回的密文   
        @Override                                              
        public String apply(String s) throws Exception {   
            String plaintext = decode(s);   //将密文解密成明文,解密逻辑自己实现
            return plaintext;    //返回明文                                   
        }                                                      
    });                                                        

很简单,通过RxHttp.setResultDecoder(Function<String, String>)静态方法,传入一个接口对象,此接口会在每次请求成功的时候被回调,并传入请求返回的密文,只需要将密文解密后返回即可。

然而,有些请求是不需求解密的,此时就可以调用setDecoderEnabled(boolean)方法,并传入false即可,如下:

RxHttp.get("/service/...")
    .setDecoderEnabled(false)  //设置本次请求不需要解密,默认为true
    .toObservableString()
    .subscribe(s -> {
        //成功回调
    }, (OnError) error -> {
        //失败回调
    });