介绍
怎么在春天引导中利用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服务进行调用