Spring Boot 3.2 RestClient 同步 HTTP 客户端
Spring Boot HTTP About 1,295 wordsHTTP 客户端
Spring 5.0
提供了WebClient
基于Spring WebFlux
的异步HTTP
客户端。
Spring 6.1
提供了RestClient
基于RestTemplate
的同步HTTP
客户端。
RestClient
实例化
RestClient restClient = RestClient.create();
body 返回内容
String result = restClient.get()
.uri("https://www.baidu.com")
.retrieve()
.body(String.class);
toEntity 转为 ResponseEntity
ResponseEntity
包含了状态码等额外信息。
ResponseEntity<String> response = restClient.post()
.uri("https://www.baidu.com")
.retrieve()
.toEntity(String.class);
System.out.println(response);
contentType/body 请求类型及请求体
class RequestBody {
public String id;
public String name;
}
RequestBody requestBody = new RequestBody();
String body = restClient.post()
.uri("https://www.baidu.com")
.contentType(MediaType.APPLICATION_JSON)
.body(requestBody)
.retrieve()
.body(String.class);
System.out.println(body);
onStatus 错误处理
String res = restClient.get()
.uri("https://www.baidu.com")
.retrieve()
.onStatus(HttpStatusCode::is4xxClientError, (request, response) -> {
System.out.println(response.getStatusCode() + " " + response.getHeaders());
})
.body(String.class);
System.out.println(res);
更多内容
https://spring.io/blog/2023/07/13/new-in-spring-6-1-restclient
Views: 952 · Posted: 2023-07-19
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...