在Java中调用外部接口超时可以采取以下几种处理方式:
HttpURLConnection
或HttpClient
等类库来实现。URL url = new URL("http://example.com/api");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000); // 设置连接超时时间为5秒
connection.setRequestMethod("GET");
// 发起请求并处理返回结果
HttpURLConnection
或HttpClient
等类库来实现。URL url = new URL("http://example.com/api");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setReadTimeout(5000); // 设置读取超时时间为5秒
connection.setRequestMethod("GET");
// 发起请求并处理返回结果
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<String> future = executorService.submit(() -> {
// 调用外部接口
return callExternalApi();
});
try {
String result = future.get(5, TimeUnit.SECONDS); // 设置超时时间为5秒
// 处理返回结果
} catch (TimeoutException e) {
// 超时处理
future.cancel(true); // 终止外部接口调用线程
} finally {
executorService.shutdown();
}
无论使用哪种方式处理超时,建议在超时时进行适当的错误处理,例如记录日志、返回错误信息等,以提供更好的用户体验。