방안.1
try {
URL url = new URL("http://example.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 타임아웃 설정 (ms 단위)
conn.setConnectTimeout(5000); // 연결 시도 타임아웃
conn.setReadTimeout(5000); // 데이터 수신 타임아웃
int responseCode = conn.getResponseCode();
System.out.println("Response Code: " + responseCode);
} catch (SocketTimeoutException e) {
System.err.println("타임아웃 발생: " + e.getMessage());
} catch (IOException e) {
System.err.println("입출력 에러: " + e.getMessage());
}
방안.2
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(5))
.build();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com"))
.timeout(Duration.ofSeconds(5))
.GET()
.build();
try {
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
} catch (java.net.http.HttpTimeoutException e) {
System.err.println("HTTP 타임아웃 발생: " + e.getMessage());
} catch (IOException | InterruptedException e) {
System.err.println("기타 통신 오류: " + e.getMessage());
}
방안.3
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(5000)
.build();
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(config)
.build();
HttpGet request = new HttpGet("http://example.com");
try (CloseableHttpResponse response = httpClient.execute(request)) {
System.out.println(EntityUtils.toString(response.getEntity()));
} catch (SocketTimeoutException e) {
System.err.println("소켓 타임아웃 발생: " + e.getMessage());
} catch (IOException e) {
System.err.println("기타 에러: " + e.getMessage());
}
'IT' 카테고리의 다른 글
| Audio editor app (0) | 2025.10.18 |
|---|---|
| ALB(Application Load Balancer)와 60초 타임아웃, 그게 뭘까? (0) | 2025.09.30 |
| 이클립스 주석 단축키 (0) | 2025.01.21 |
| Dbeaver auto-commit 끄기 (0) | 2025.01.15 |
| DBeaver 백그라운드 작업 계속됨 (0) | 2025.01.15 |
댓글