怎么在春天引导中利用WebClient对HTTP服务进行调用

  介绍

怎么在春天引导中利用WebClient对HTTP服务进行调用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

WebClient的请求模式属于异步非阻塞,能够以少量固定的线程处理高并发的HTTP请求

WebClient是春天WebFlux模块提供的一个非阻塞的基于响应式编程的进行HTTP请求的客户端工具,从Spring5.0开始提供

<强>在春天引导应用中

1。添加弹簧WebFlux依赖

& lt; dependency>   & lt;才能groupId> org.springframework.boot</groupId>   & lt;才能artifactId> spring-boot-starter-webflux</artifactId>   & lt;/dependency>

2。使用

(1) Restful接口demoController。java

package  com.example.demo.controller;      import  com.example.demo.domain.MyData;   import  org.springframework.http.HttpHeaders;   import  org.springframework.http.MediaType;   import  org.springframework.web.bind.annotation。*;      import  javax.servlet.http.Cookie;   import  javax.servlet.http.HttpServletRequest;      @RestController   @RequestMapping (“/api")   public  class  demoController  {      @GetMapping才能(value =,“/getHeader",, produces =, {MediaType.APPLICATION_JSON_UTF8_VALUE})   public 才能;MyData  getHeader (HttpServletRequest 请求),{      ,,,int  id =, 0;   ,,,if  (request.getParameter (“id"), !=, null), {   ,,,,,id =, Integer.valueOf (request.getParameter (“id"));   ,,,}   ,,,String  name =, request.getParameter (“name");   ,,,//头   ,,,String  userAgent =,“USER_AGENT——“, +, request.getHeader (HttpHeaders.USER_AGENT);   ,,,userAgent  +=,,, |, ACCEPT_CHARSET——“, +, request.getHeader (HttpHeaders.ACCEPT_CHARSET);   ,,,userAgent  +=,,, |, ACCEPT_ENCODING——“, +, request.getHeader (HttpHeaders.ACCEPT_ENCODING);   ,,,userAgent  +=,,, |, ContextPath——“, +, request.getContextPath ();   ,,,userAgent  +=,,, |, AuthType——“, +, request.getAuthType ();   ,,,userAgent  +=,,, |, PathInfo——“, +, request.getPathInfo ();   ,,,userAgent  +=,,, |,方法——“,+,request.getMethod ();   ,,,userAgent  +=,,, |,变量的名称——“,+,request.getQueryString ();   ,,,饼干[],cookies =, request.getCookies ();   ,,,if  (cookies  !=, null), {   ,,,,,for  (Cookie  Cookie :饼干),{   ,,,,,,,System.out.println (cookie.getName (), +,“:“, +, cookie.getValue ());   ,,,,,}   ,,,}   ,,,MyData  data =, new  MyData ();   ,,,data.setId (id);   ,,,data.setName(名称);   ,,,data.setOther (userAgent);   ,,,return 数据;   ,,}      @PostMapping才能(value =,“/getPost",, produces =, {MediaType.APPLICATION_JSON_UTF8_VALUE})   public 才能;MyData  getPost (HttpServletRequest 请求),{      ,,,int  id =, 0;   ,,,if  (request.getParameter (“id"), !=, null), {   ,,,,,id =, Integer.valueOf (request.getParameter (“id"));   ,,,}   ,,,String  name =, request.getParameter (“name");   ,,,System.out.println(时间+ name “,“, +, id);   ,,,MyData  data =, new  MyData ();   ,,,data.setId (id);   ,,,data.setName(名称);   ,,,return 数据;      ,,}   ,/* *   ,,*,帖子传JSON请求   ,,*/@PostMapping才能(value =,“/getPostJson",, produces =, {MediaType.APPLICATION_JSON_UTF8_VALUE})   public 才能;MyData  getPostJson (@RequestBody (required =, true), MyData 数据),{   ,,,System.out.println (data.getId ());   ,,,System.out.println (data.getName ());   ,,,return 数据;   ,,}   }

MyData。java

package  com.example.demo.domain;      public  class  MyData  {   private 才能int  id;   private 才能;String 名称;   private 才能;String ;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在春天引导中利用WebClient对HTTP服务进行调用