Spring WebClient是一个非阻塞、反应式的Web客户端,可用于发送HTTP请求和接收响应。要传递Error Body和StatusCode,可以按照以下步骤进行操作:
WebClient webClient = WebClient.create();
exchange()
方法发送请求,并使用onStatus()
方法处理不同的状态码。可以根据不同的状态码执行不同的操作,包括处理错误响应。webClient.get()
.uri("https://example.com/api/endpoint")
.exchange()
.flatMap(response -> {
if (response.statusCode().isError()) {
return response.bodyToMono(String.class)
.flatMap(errorBody -> {
// 处理错误响应的逻辑
System.out.println("Error Body: " + errorBody);
System.out.println("Status Code: " + response.statusCode());
return Mono.error(new RuntimeException("Error occurred"));
});
} else {
return response.bodyToMono(String.class)
.doOnSuccess(body -> {
// 处理成功响应的逻辑
System.out.println("Response Body: " + body);
System.out.println("Status Code: " + response.statusCode());
});
}
})
.subscribe();
在上面的示例中,我们使用exchange()
方法发送GET请求,并通过onStatus()
方法检查响应的状态码。如果状态码是错误的,我们将处理错误响应并抛出异常。如果状态码是成功的,我们将处理成功响应。
bodyToMono()
方法将响应主体转换为Mono<String>对象,但可以根据实际需求将其转换为其他类型。请注意,需要在项目的依赖中添加相关的Jackson或Gson库以支持对象转换。推荐的腾讯云产品:
更多关于腾讯云产品的介绍和文档,请访问 腾讯云官方网站。
领取专属 10元无门槛券
手把手带您无忧上云