Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인출수수료
- 변환
- 파이썬
- Vue.js
- 웹개발
- 중도인출
- 프론트엔드
- 특약
- 뇌출혈
- Java
- 납입
- python
- 코딩
- 사망
- 리스트
- 프로그래밍
- 수수료
- 보험료
- 보험
- 가입
- 자바스크립트
- 급성심근경색증
- 추가납입
- 심장질환
- jQuery
- 문자열
- 교보
- PythonProgramming
- 교보생명
- javascript
Archives
- Today
- Total
SeouliteLab
[Java/자바] HttpClient에 Timeout 설정하기 본문
Java에서 HttpClient를 사용하여 외부 서버와 통신할 때, Timeout을 적용하는 것은 매우 중요합니다. 이번 글에서는 HttpClient에 Timeout을 적용하는 여러 가지 방법을 살펴보겠습니다.
1. 기본적인 Timeout 설정
가장 간단한 방법은 HttpClient의 기본 Timeout을 설정하는 것입니다. HttpClient의 생성자 또는 설정 메서드를 통해 Timeout 값을 지정할 수 있습니다.
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class HttpClientExample {
public static void main(String[] args) {
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // 연결 Timeout: 5초
.setSocketTimeout(5000) // 소켓 Timeout: 5초
.build();
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.build();
// HttpClient 사용
}
}
2. 특정 Request에 Timeout 적용
HttpClient를 사용하여 특정 Request에만 Timeout을 적용하고 싶은 경우에는 RequestConfig를 개별적으로 설정하여 사용할 수 있습니다.
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class HttpClientExample {
public static void main(String[] args) throws Exception {
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // 연결 Timeout: 5초
.setSocketTimeout(5000) // 소켓 Timeout: 5초
.build();
CloseableHttpClient httpClient = HttpClients.custom().build();
HttpGet httpGet = new HttpGet("http://example.com");
httpGet.setConfig(requestConfig);
// HttpClient 사용
}
}
3. ConnectionManager 설정
HttpClient의 ConnectionManager를 직접 설정하여 Timeout을 적용할 수도 있습니다. 이 방법은 커스터마이징이 필요한 경우에 유용합니다.
import org.apache.http.config.SocketConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
public class HttpClientExample {
public static void main(String[] args) {
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
connManager.setDefaultSocketConfig(SocketConfig.custom()
.setSoTimeout(5000) // 소켓 Timeout: 5초
.build());
CloseableHttpClient httpClient = HttpClients.custom()
.setConnectionManager(connManager)
.build();
// HttpClient 사용
}
}
'프로그래밍' 카테고리의 다른 글
[Java/자바] 키보드, 마우스 이벤트 후킹하기 (0) | 2024.03.09 |
---|---|
[Java/자바] Java에서 윈도우 CMD 명령어 실행 및 결과 출력하기 (0) | 2024.03.09 |
[Java/자바] NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper 에러 해결 방법 (0) | 2024.03.09 |
[Java/자바] AbstractMethodError의 원인과 해결 방법 (0) | 2024.03.09 |
[Java/자바] Object를 byte[]로 변환하기 (0) | 2024.03.09 |