Spring HttpClientErrorException 和 RestClientException 获取请求 URL
Spring HttpClientErrorException and RestClientException getting request URL
我在 try-catch 块中有超过 1 个 http 调用,例如:
try {
HttpHeaders httpHeaders = new HttpHeaders();
ResponseEntity<String> sendGet = http.sendGet(someUrl1, httpHeaders);
ResponseEntity<String> sendPost = http.sendPost(someUrl2, httpHeaders);
}catch(HttpClientErrorException e) {
//print call url here someUrl1/someUrl2
printException(e);
}
catch (Exception e) {
printException(e);
//general e
}
//Print exception
public void printException(Exception e){
//log URL here
}
我想在捕捉到异常时打印失败的 URL,但我没有找到可以使用的 HttpClientErrorException
或 RestClientException
属性。
编辑一般情况:
我认为你不应该使用 HttpClientErrorException
来获取 url,你在调用每个请求之前知道 URL,所以我的建议是:
创建一个接收 post 方法、URL 和 headers 参数的通用发送方法
为每个请求调用你的方法,它也会根据当前的URL
处理异常
问题描述的简单案例:
您可以为每个请求拆分为 2 个 try 和 catch 块
或添加一个布尔值(或 currentUrl 字符串变量)
boolean isFirstRequestFinished = false;
在第一次请求后将其设置为 true 并签入 catch 块
if (isFirstRequestFinished) {
我在 try-catch 块中有超过 1 个 http 调用,例如:
try {
HttpHeaders httpHeaders = new HttpHeaders();
ResponseEntity<String> sendGet = http.sendGet(someUrl1, httpHeaders);
ResponseEntity<String> sendPost = http.sendPost(someUrl2, httpHeaders);
}catch(HttpClientErrorException e) {
//print call url here someUrl1/someUrl2
printException(e);
}
catch (Exception e) {
printException(e);
//general e
}
//Print exception
public void printException(Exception e){
//log URL here
}
我想在捕捉到异常时打印失败的 URL,但我没有找到可以使用的 HttpClientErrorException
或 RestClientException
属性。
编辑一般情况:
我认为你不应该使用 HttpClientErrorException
来获取 url,你在调用每个请求之前知道 URL,所以我的建议是:
创建一个接收 post 方法、URL 和 headers 参数的通用发送方法
为每个请求调用你的方法,它也会根据当前的URL
处理异常问题描述的简单案例:
您可以为每个请求拆分为 2 个 try 和 catch 块
或添加一个布尔值(或 currentUrl 字符串变量)
boolean isFirstRequestFinished = false;
在第一次请求后将其设置为 true 并签入 catch 块
if (isFirstRequestFinished) {