[java] HttpClient의 Timeout 설정을 변경하는 방법은?

HttpClient는 Java에서 HTTP 요청을 보내기 위한 유용한 라이브러리입니다. 그러나 기본적으로 HttpClient의 Timeout 설정은 너무 짧을 수 있습니다. 이때문에 서버로부터 적절한 응답을 받지 못할 수도 있습니다. 따라서 HttpClient의 Timeout 설정을 변경해야 할 때가 있을 것입니다.

이 글에서는 HttpClient의 Timeout 설정을 변경하는 방법을 살펴보겠습니다.

Timeout 설정 변경하기

HttpClient의 Timeout 설정을 변경하려면 RequestConfig 객체를 사용해야 합니다. 아래의 예제 코드를 통해 Timeout 설정을 변경하는 방법을 확인해보세요.

import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClientBuilder;

public class CustomHttpClient {

    public static void main(String[] args) {
        int timeout = 5000; // Timeout 시간 (밀리초 단위)

        RequestConfig requestConfig = RequestConfig.custom()
                .setConnectTimeout(timeout)
                .setConnectionRequestTimeout(timeout)
                .setSocketTimeout(timeout)
                .build();

        HttpClient httpClient = HttpClientBuilder.create()
                .setDefaultRequestConfig(requestConfig)
                .build();

        // 여기서부터 HttpClient를 사용한 HTTP 요청 코드 작성
    }
}

위의 예제 코드에서 timeout 변수를 통해 변경할 Timeout 시간을 지정합니다. 이 때, 시간은 밀리초 단위로 지정하면 됩니다.

RequestConfig 객체를 생성하고, setConnectTimeout, setConnectionRequestTimeout, setSocketTimeout 메서드를 통해 각각 연결 대기 시간, 연결 시간, 소켓 읽기 시간을 설정합니다.

마지막으로, HttpClientBuilder를 사용하여 HttpClient 객체를 생성하고, setDefaultRequestConfig 메서드를 통해 앞서 생성한 RequestConfig 객체를 설정합니다.

참고 자료