在Java中調(diào)用外部接口超時可以采取以下幾種處理方式:
HttpClient
等類庫來實現(xiàn)。URL url = new URL("http://example.com/api");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000); // 設(shè)置連接超時時間為5秒
connection.setRequestMethod("GET");
// 發(fā)起請求并處理返回結(jié)果
HttpURLConnection
或HttpClient
等類庫來實現(xiàn)。URL url = new URL("http://example.com/api");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setReadTimeout(5000); // 設(shè)置讀取超時時間為5秒
connection.setRequestMethod("GET");
// 發(fā)起請求并處理返回結(jié)果
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<String> future = executorService.submit(() -> {
// 調(diào)用外部接口
return callExternalApi();
});
try {
String result = future.get(5, TimeUnit.SECONDS); // 設(shè)置超時時間為5秒
// 處理返回結(jié)果
} catch (TimeoutException e) {
// 超時處理
future.cancel(true); // 終止外部接口調(diào)用線程
} finally {
executorService.shutdown();
}
無論使用哪種方式處理超時,建議在超時時進(jìn)行適當(dāng)?shù)腻e誤處理,例如記錄日志、返回錯誤信息等,以提供更好的用戶體驗。