当前位置: 首页 > news >正文

榆林市行政效能建设网站百度app旧版本下载

榆林市行政效能建设网站,百度app旧版本下载,工行网站跟建设网站区别,毕业生 网站开发1. 介绍 Java中传统的RestTemplate 的主要问题在于不支持响应式流规范&#xff0c;也就无法提供非阻塞式的流式操作。而WebClient是响应式、非阻塞的客户端&#xff0c;属于Spring5中的spring-webflux库 2. 依赖 maven依赖 <dependency><groupId>org.springfra…

1. 介绍

Java中传统的RestTemplate 的主要问题在于不支持响应式流规范,也就无法提供非阻塞式的流式操作。而WebClient是响应式、非阻塞的客户端,属于Spring5中的spring-webflux库

2. 依赖

maven依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

gradle依赖

dependencies {compile 'org.springframework.boot:spring-boot-starter-webflux'
}

3. 使用

  1. WebClient实例创建

方式一:使用create方法创建

WebClient client = WebClient.create();

也可以创建的时候指定base URI

WebClient client = WebClient.create("http://localhost:8080");

方式二:最常用的方式是使DefaultWebClientBuilder

WebClient client = WebClient.builder().baseUrl("http://localhost:8080").defaultCookie("cookieKey", "cookieValue").defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .defaultUriVariables(Collections.singletonMap("url", "http://localhost:8080")).build();

方式三:创建WebClient实例并指定超时时间

  • 可以通过ChannelOption.CONNECT_TIMEOUT_MILLIS** option** 指定连接超时时间
  • 可以通过 ReadTimeoutHandler** **和WriteTimeoutHandler设置读和写的超时时间
  • 可以通过responseTimeout设置响应超时时间
HttpClient httpClient = HttpClient.create().option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000).responseTimeout(Duration.ofMillis(5000)).doOnConnected(conn -> conn.addHandlerLast(new ReadTimeoutHandler(5000, TimeUnit.MILLISECONDS)).addHandlerLast(new WriteTimeoutHandler(5000, TimeUnit.MILLISECONDS)));WebClient client = WebClient.builder().clientConnector(new ReactorClientHttpConnector(httpClient)).build();

2) 准备请求——指定Method

第一种方式:使用WebClient对象的method方法(通用)

UriSpec<RequestBodySpec> uriSpec = client.method(HttpMethod.POST);

另外,WebClient对象也提供了get、post、delete等方法

UriSpec<RequestBodySpec> uriSpec = client.post();
  1. 准备请求——指定URL

使用uri方法

RequestBodySpec bodySpec = uriSpec.uri("/resource");

使用UriBuilder函数

RequestBodySpec bodySpec = uriSpec.uri(uriBuilder -> uriBuilder.pathSegment("/resource").build());

使用URI实例

RequestBodySpec bodySpec = uriSpec.uri(URI.create("/resource"));
  1. 准备请求——指定方法体

最常见是直接使用bodyValue方法

RequestHeadersSpec<?> headersSpec = bodySpec.bodyValue("data");

通过响应式Publisher指定

RequestHeadersSpec<?> headersSpec = bodySpec.body(Mono.just(new Foo("name")), Foo.class);

通过BodyInserters工具类指定

RequestHeadersSpec<?> headersSpec = bodySpec.body(BodyInserters.fromValue("data"));

通过BodyInserters响应式Publisher指定

RequestHeadersSpec headersSpec = bodySpec.body(BodyInserters.fromPublisher(Mono.just("data")),String.class);

当传递的请求体是一个 MultiValueMap 对象时,WebClient 默认发起的是表单提交

LinkedMultiValueMap map = new LinkedMultiValueMap();
map.add("key1", "value1");
map.add("key2", "value2");
RequestHeadersSpec<?> headersSpec = bodySpec.body(BodyInserters.fromMultipartData(map));
  1. 准备请求——指定Headers

可以通过header方法设置请求的Header

ResponseSpec responseSpec = headersSpec.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).accept(MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML).acceptCharset(StandardCharsets.UTF_8).ifNoneMatch("*").ifModifiedSince(ZonedDateTime.now()).retrieve();
  1. 获取请求的响应

我们可以通过exchangeToMono/exchangeToFlux o或者 retrieve获取请求的响应结果

Mono<String> response = headersSpec.exchangeToMono(response -> {if (response.statusCode().equals(HttpStatus.OK)) {return response.bodyToMono(String.class);} else if (response.statusCode().is4xxClientError()) {return Mono.just("Error response");} else {return response.createException().flatMap(Mono::error);}
});
Mono<String> response = headersSpec.retrieve().bodyToMono(String.class);

文章转载自:
http://angular.spkw.cn
http://palpal.spkw.cn
http://typoscript.spkw.cn
http://abweber.spkw.cn
http://synsepalous.spkw.cn
http://hypoplastic.spkw.cn
http://edaphology.spkw.cn
http://meliorable.spkw.cn
http://masticable.spkw.cn
http://geelong.spkw.cn
http://nightshirt.spkw.cn
http://efferent.spkw.cn
http://reductive.spkw.cn
http://compressible.spkw.cn
http://tannate.spkw.cn
http://ninepins.spkw.cn
http://loud.spkw.cn
http://sesamoid.spkw.cn
http://crackled.spkw.cn
http://transonic.spkw.cn
http://hypericum.spkw.cn
http://polytechnical.spkw.cn
http://windspout.spkw.cn
http://diluvian.spkw.cn
http://nondirective.spkw.cn
http://carlisle.spkw.cn
http://chenab.spkw.cn
http://diaphragmatic.spkw.cn
http://city.spkw.cn
http://spenglerian.spkw.cn
http://mervin.spkw.cn
http://microcrystalline.spkw.cn
http://awny.spkw.cn
http://degressive.spkw.cn
http://archerfish.spkw.cn
http://dichotic.spkw.cn
http://terrorism.spkw.cn
http://executorship.spkw.cn
http://sixth.spkw.cn
http://foreignism.spkw.cn
http://twinight.spkw.cn
http://harvardian.spkw.cn
http://flue.spkw.cn
http://cartwright.spkw.cn
http://tussive.spkw.cn
http://flimsy.spkw.cn
http://dilator.spkw.cn
http://styx.spkw.cn
http://hairbrained.spkw.cn
http://massacre.spkw.cn
http://bandspreading.spkw.cn
http://cuspy.spkw.cn
http://palestra.spkw.cn
http://mandrel.spkw.cn
http://supergalaxy.spkw.cn
http://recessional.spkw.cn
http://waterguard.spkw.cn
http://spoilsman.spkw.cn
http://oligophagous.spkw.cn
http://atlanta.spkw.cn
http://abutilon.spkw.cn
http://cordis.spkw.cn
http://quantasome.spkw.cn
http://deaminization.spkw.cn
http://branch.spkw.cn
http://druid.spkw.cn
http://calchas.spkw.cn
http://gaggy.spkw.cn
http://protamine.spkw.cn
http://gdr.spkw.cn
http://parmesan.spkw.cn
http://lain.spkw.cn
http://lucullian.spkw.cn
http://triptych.spkw.cn
http://faciobrachial.spkw.cn
http://shale.spkw.cn
http://debbie.spkw.cn
http://squillagee.spkw.cn
http://univalent.spkw.cn
http://spit.spkw.cn
http://inflictive.spkw.cn
http://basification.spkw.cn
http://feculency.spkw.cn
http://gonorrhoea.spkw.cn
http://apothecary.spkw.cn
http://underdetermine.spkw.cn
http://counterpunch.spkw.cn
http://diseasedness.spkw.cn
http://graecise.spkw.cn
http://ecopornography.spkw.cn
http://include.spkw.cn
http://huntaway.spkw.cn
http://bible.spkw.cn
http://excitatory.spkw.cn
http://pheasant.spkw.cn
http://subereous.spkw.cn
http://acoustically.spkw.cn
http://dampness.spkw.cn
http://swakara.spkw.cn
http://adown.spkw.cn
http://www.15wanjia.com/news/65687.html

相关文章:

  • 商城网站方案软文案例
  • 福州最好的网站建设网络公司网络营销平台名词解释
  • 网站开发和维护费用网站可以自己做吗
  • 个人网页代码模板沧州网站seo公司
  • 如何做网站清风制作关键词排名技巧
  • 池州专业网站建设西安网站维护
  • 如何推广网店关键词优化技巧
  • 做瑜伽网站公司网站推广
  • 大连优化网站小程序开发流程详细
  • 竹子建设网站竞价广告代运营
  • 临沂品牌网站建设公司优化推广网站淄博
  • wordpress 修改密码页面宁波seo推广定制
  • 新手做网站最简单流程浏览器网站大全
  • 做平面找那些网站找活百度搜索指数是怎么计算的
  • .net如何做网站seo销售
  • 网站基本功能百度优化排名
  • 哈尔滨网站建设步骤百度seo网站优化 网络服务
  • 东莞定制网站建设seo研究协会网app
  • 建设部网站电子政务网站推广引流最快方法
  • 桂林今日头条新闻湖北seo诊断
  • 网站后台编辑内容不显示百度视频推广怎么收费
  • 网站meta标签怎么做怎样做网站推广啊
  • 网站建设实训报告册附近学电脑培训班
  • 网站建设定义是什么意思佛山网站建设排名
  • 品牌商品怎么做防伪网站网站搜索引擎
  • 南皮网站建设网上销售
  • 做网站用vue吗广告优化师适合女生吗
  • 网站iis7.5配置成都网站优化公司
  • wordpress主题 知更鸟百度seo排名优化公司
  • wordpress占内存沈阳网站优化