最近公司项目中使用了webflux,在调用第三方接口的时使用的是webclient,网上关于webclient的资料非常稀少,尤其是关于webclient的相关的东西找来找去都是那么几篇,为此我特意整理了一些网上很难找到的资料,话不多说,下面开始介绍
在webclient配置类中初始化bean的时,需要加入自定义编码解码器就可以获取到相关的参数; 1.首先定义一个写编码器,写编码器需要继承EncoderHttpMessageWriter,需要自定义实现write方法和canWrite方法,其中canWrite返回true时,自定义编码器生效 2.然后定一个一个读编码器(继承)DecoderHttpMessageReader,需要实现read和canRead方法,其中canRead返回true,读编码器生效
3.在自定义写编码器中,write方法中的publish参数返回mono或flux中的body就是请求的具体body参数,获取Method和请求path则需要讲message强制转换成AbstractClientHttpRequest类即可获取到
最后把编码器注册到wbclient中
4.如果需要获取Get请求则需要另一种方法 自定义一个方法,然后将方法加入到webclient的过滤器中