使用WebClient发请求

获取WebClient对象

WebClient webClient = WebClient.builder()
        .baseUrl("http://jsonplaceholder.typicode.com")
        .defaultHeader(HttpHeaders.USER_AGENT,"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)")
        .defaultCookie("ACCESS_TOKEN", "test_token")
        .build();

发送请求

Mono<String> mono = webClient
                .get() //请求方式
                .uri("/posts/1")  //请求路径
                .headers(headersConsumer)//设置请求头
                .retrieve() //获取响应体
                .bodyToMono(String.class); //响应数据类型转换,可以直接转成自定义Bean
//				.bodyToFlux(PostBean.class); //转成Bean数组
//		        List<PostBean> posts = flux.collectList().block();
        System.out.println(mono.block());//响应体数据

header和cookie的设置可以通过实现Consumer接口传集合

Consumer<HttpHeaders> headersConsumer = httpHeaders -> {
            for (Map.Entry<String, String> entry : headersMap.entrySet()) {
                httpHeaders.add(entry.getKey(), entry.getValue());
            }
        };

uri装载参数

.uri("/{1}/{2}", "posts", "1")

String type = "posts";
int id = 1;
.uri("/{type}/{id}", type, id)
    
Map<String,Object> map = new HashMap<>();
map.put("type", "posts");
map.put("id", 1);
.uri("/{type}/{id}", map)

非阻塞式获取相应(异步获取结果)

mono.subscribe(result -> {
            System.out.println(result);
        });

post发json

.contentType(MediaType.APPLICATION_JSON_UTF8)//设类型

.body(BodyInserters.fromObject(jsonStr))//传json字符串
.syncBody(postBean)//传bean

post传表单

.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.body(BodyInserters.fromFormData(map))

更多可以看https://blog.csdn.net/weixin_35688430/article/details/119750922

@LoadBalanced

加在builder的注册上

@Bean
@LoadBalanced
public WebClient.Builder builder(){
    return WebClient.builder();
}
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值