spring获取网页错误信息
时间: 2024-09-17 10:03:58 浏览: 37
在Spring框架中,如果你试图通过`RestTemplate`或者`WebClient`来发送HTTP请求并捕获到网络异常或者服务器返回的错误状态码(如404、500等),你可以这样做:
1. **RestTemplate**示例:
```java
try {
ResponseEntity<String> response = restTemplate.getForEntity("http://example.com", String.class);
} catch (HttpClientErrorException e) {
// 处理HTTP错误响应,例如e.getStatusCode()将返回具体的HTTP状态码
HttpStatus status = e.getStatusCode();
String errorMessage = e.getResponseBody(); // 获取错误消息
System.out.println("Error: " + status + ", Message: " + errorMessage);
}
```
2. **WebClient**示例:
```java
Mono<String> result = WebClient.create()
.get()
.uri("http://example.com")
.retrieve()
.onStatus(HttpStatus::isError, response -> Mono.error(new RuntimeException(response.statusCode(), response.bodyToMono(String.class))));
try {
String responseBody = result.block();
} catch (RuntimeException e) {
HttpStatus httpStatus = e.getStatus();
String errorMessage = e.getMessage(); // 这里包含错误信息
System.out.println("Error: " + httpStatus + ", Message: " + errorMessage);
}
```
上述代码中,`HttpClientErrorException`和`WebClientResponseException`都是Spring提供的异常类型,它们包含了HTTP响应的状态码和可能的错误消息。
阅读全文