使用WebClient
WebClient是Spring WebFlux模块提供的一个非阻塞的基于响应式编程的进行Http请求的客户端工具,从Spring5.0开始提供。Spring Boot应用中添加如下依赖将自动添加Spring WebFlux依赖,从而可以使用WebClient。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
Spring Boot的org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration.
会自动配置一个WebClient.Builder
类型的bean。在需要使用WebClient的时候在程序中注入一个WebClient.Builder
对象,通过对它进行自定义来生成对应的WebClient对象,从而作为客户端进行Web请求。下面是一个简单的示例。
@Service
public class WebClientService {
private final WebClient webClient;
public WebClientService(WebClient.Builder builder) {
this.webClient = builder.baseUrl("http://localhost:8081").build();
}
public String getJson() {
return this.webClient.get().uri("hello/json").retrieve().bodyToMono(String.class).block();
}
}
WebClientCustomizer
Spring Boot提供了org.springframework.boot.web.reactive.function.client.WebClientCustomizer
接口定义,它允许我们通过实现该接口对WebClient进行一些通用的自定义,然后将该接口的实现类定义为Spring bean。Spring Boot在创建WebClient实例时会在bean容器中寻找WebClientCustomizer类型的bean,一一调用它们的customize()
方法以便对WebClient进行一些自定义。下面的代码中就对WebClient添加了一个默认的Cookie和一个默认的Header。
@Component
public class MyWebClientCustomizer implements WebClientCustomizer {
@Override
public void customize(Builder webClientBuilder) {
webClientBuilder.defaultCookie("cookieName", "cookieValue").defaultHeader("headerName", "headerValue");
}
}
CodecCustomizer
如果需要定义自己的编解码工具,则可以实现org.springframework.boot.web.codec.CodecCustomizer接口,把它定义为Spring bean,通过其customize()
方法可以获取到org.springframework.http.codec.CodecConfigurer
对象,从而可以注册新的编解码工具,或对现有的编解码工具进行替换等。
本文主要介绍在Spring Boot工程中如何应用WebClient,关于WebClient的基本用法可以参考http://elim.iteye.com/blog/2427658。
(注:本文基于Spring Boot 2.0.3所写)
相关推荐
主要介绍了spring boot使用WebClient调用HTTP服务代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要给大家介绍了关于Spring5中WebClient使用方法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. ...
在Spring Boot中,RestTemplate和WebClient是两种常用的HTTP客户端,它们各自具有不同的特点和适用场景。本文将介绍这两种客户端的基本概念、工作原理和使用方法,并通过对比分析,帮助读者更好地理解它们的差异。...
使用WebClient实现文件下载,进度条反应下载进度。
很实用 很方便的一个实例性指导文件。下了你就知道了,没的说啊。
下载开箱即用:C#使用WebClient获取网页源文件例子:该例子演示了通过WebClient获取百度首页源文件,并进行UTF8解码,存入一个字符串中。
本篇文章主要介绍了spring 5 webclient使用指南详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Spring Web(RestControllers,RestTemplates,WebAsyncTask,WebClient,WebFlux) @ Async,@ Scheduled,执行器 WebSocket STOMP 假装,Hystrix Hystrix JMS JDBC 卡夫卡 蒙哥 祖尔 React堆 RxJava的 ...
例1:使用WebClient中的UploadFile方法上传文件。代码如下。使用此方法需要将上传的文件夹权限设置为 IIS来宾账户允许读写。 例2:使用WebClient的UpLoadData上传文件 例3:使用WebClient的Write方法上传。 例4:...
该资源使用Webclient 类后台自动获取网络上指定的文件内容,下载过程中可以显示实时下载速度和进度,下载完成之后又提示信息。
C#中使用WebClient下载指定url的网络照片示例源码--VS2013
WEBCLIENT使用方法
C# WebClient 上传文件 WebClient上传文件至服务器
我主要使用Apache Http Client,因此最初仅使用来自Apache的http客户端创建了该项目。 一段时间后,我发现有更多的Java客户端,并且还有一些基于Kotlin和Scala的客户端。 配置ssl / tls可能很困难,每个客户端都需要...
SilverLight 学习笔记 使用WebClient实现通讯 二 上传和下载流数据
C# WebClient实现文件下载 示例源码
基于webClient 的ftp操作,该案例是基于http模式,如果是ftp,直接将http改成ftp即可
基于WebClient类的Ftp文件上传,使用方便,采用异步模式编程,可支持大文件,文件分包上传,可自定义包大小,代码有两种风格的形式:一个是类库版,一个是组件版 都在一起 效果一样!
course-spring-microservices:用于视频课程的代码示例:具有Spring Boot和Spring Cloud的微服务