【发布时间】:2019-05-06 03:01:19
【问题描述】:
我有函数调用 api,使用 RestTemplate。我想在超时返回 null 时捕获异常,这是我的代码:
//Create resttemplate
public List<String> getRoleUser(String username) {
try{
RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());
String[] list = restTemplate.getForObject("(link call api)", String[].class);
return Arrays.asList(list);
}catch (Exception ex){
ex.printStackTrace();
return null;
}
}
//Override timeouts in request factory
private SimpleClientHttpRequestFactory getClientHttpRequestFactory()
{
SimpleClientHttpRequestFactory clientHttpRequestFactory
= new SimpleClientHttpRequestFactory();
//Connect timeout
clientHttpRequestFactory.setConnectTimeout(10_000);
//Read timeout
clientHttpRequestFactory.setReadTimeout(10_000);
return clientHttpRequestFactory;
}
但它不起作用。 那么,如何在超时时返回 null 呢?
【问题讨论】:
-
but it don't work.是什么意思?你有什么错误信息吗? -
它不起作用这意味着不返回null。
-
如果超时,如何捕获异常,并在函数 getRoleUser() 中返回 null?
-
我正在尝试出现消息错误,但没有返回 null
org.springframework.web.client.ResourceAccessException: I/O error on GET request for "link call api": connect timed out; nested exception is java.net.SocketTimeoutException: connect timed out
标签: java spring-boot resttemplate