[python] 요청시 타임아웃 설정하기
요청을 보낼 때 서버로부터 응답을 기다리는 시간을 제한하는 타임아웃 설정은 매우 중요합니다. 이를 통해 불필요한 대기 시간을 줄이고, 응답이 없을 때 프로그램이 멈추는 상황을 방지할 수 있습니다. Python에서는 다음과 같이 요청시 타임아웃을 설정할 수 있습니다.
requests
라이브러리를 사용한 예제
import requests
try:
response = requests.get('https://www.example.com', timeout=5)
# 타임아웃 시간을 5초로 설정하여 요청을 보냄
response.raise_for_status() # 응답 상태코드를 체크하고 문제가 있을 경우 에러를 발생시킴
except requests.Timeout:
print("타임아웃이 발생했습니다.")
except requests.RequestException as e:
print(f"에러가 발생했습니다: {e}")
위 예제에서는 requests
라이브러리의 get
메서드를 사용하여 https://www.example.com
로 GET 요청을 보냅니다. timeout
매개변수를 사용하여 응답을 기다리는 시간을 5초로 설정했습니다. 만약 응답이 5초 이내에 도착하지 않으면 requests.Timeout
예외가 발생합니다.
또한, raise_for_status()
메서드를 사용하여 응답 상태코드를 체크하고 문제가 있을 경우 에러를 발생시킬 수 있습니다. 이를 통해 서버로부터 받은 응답이 정상인지 확인할 수 있습니다.
만약 타임아웃이 발생하거나 요청에 다른 문제가 있는 경우, 각각 requests.Timeout
및 requests.RequestException
예외가 발생하므로 이를 적절히 처리할 수 있습니다.
위 예제는 requests
라이브러리를 사용한 예시이지만, 다른 HTTP 라이브러리를 사용하는 경우에도 대부분 타임아웃 설정 방법이 유사합니다. 해당 라이브러리의 공식 문서를 참조하여 타임아웃 설정 방법을 확인하시기 바랍니다.