HTTP 연결 타임아웃 설정
이 문서는 HTTP 요청에 대한 연결 타임아웃을 설정하는 방법에 대해 설명합니다. 이 기능은 HTTP 요청을 보낼 때 사용할 타임아웃 값을 지정합니다. 타임아웃이 발생하면 asyncHTTPevent
가 트리거됩니다. 기본 타임아웃 값은 60000ms(즉, 1분)입니다. 설정된 값은 가이드라인일 뿐이며, 네트워크 조건이나 운영 체제에 따라 요청이 더 일찍 또는 더 늦게 타임아웃될 수 있습니다.
함수 문법
http_set_connect_timeout(connect_timeout_ms);
인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
connect_timeout_ms | Real | 이후 요청에 사용할 연결 타임아웃 값 (밀리초 단위) |
반환 값
- Real
예제
마우스 왼쪽 클릭 이벤트에서의 사용 예
http_set_connect_timeout(10000); // 타임아웃을 10초로 설정
var _map_headers = ds_map_create(); // 헤더 맵 생성
request_id = http_request("https://www.google.com", "GET", _map_headers, ""); // HTTP GET 요청
비동기 HTTP 이벤트 처리
if (async_load[? "id"] != request_id) {
show_debug_message("우리 요청에 대한 응답이 아닙니다..."); // 요청 ID 비교
exit; // 이벤트 종료
}
var _status = async_load[? "status"]; // 상태 가져오기
var _http_status = async_load[? "http_status"]; // HTTP 상태 가져오기
show_debug_message($"상태: {_status}, HTTP 상태: {_http_status}"); // 디버그 메시지 출력
위의 코드는 마우스 왼쪽 클릭 이벤트에서 HTTP GET 요청을 보내기 전에 타임아웃을 10초로 설정합니다. 비동기 HTTP 이벤트에서 비동기 ID를 요청 ID와 비교하여, 두 ID가 다르면 디버그 메시지를 출력하고 이벤트를 종료합니다. ID가 같으면 코드 실행이 계속되고 async_load
의 "status"와 "http_status" 키의 값이 디버그 메시지로 출력됩니다. 이러한 변수의 값을 확인하여 오류가 발생했는지, 발생했다면 어떤 오류인지 판단할 수 있습니다.
활용 예제
예제 1: 타임아웃 설정을 통한 안정성 향상
http_set_connect_timeout(5000); // 5초로 설정
var _response = http_request("https://api.example.com/data", "GET", _map_headers, "");
예제 2: 다양한 요청에 대한 타임아웃 적용
http_set_connect_timeout(15000); // 15초로 설정
var _request1 = http_request("https://api.example.com/resource1", "GET", _map_headers, "");
var _request2 = http_request("https://api.example.com/resource2", "POST", _map_headers, "data");
예제 3: 타임아웃 발생 시 사용자 알림
http_set_connect_timeout(2000); // 2초로 설정
var _request = http_request("https://api.example.com/slow", "GET", _map_headers, "");
이와 같은 방식으로 HTTP 요청의 타임아웃을 설정하여 네트워크 안정성을 높이고, 다양한 상황에 맞게 활용할 수 있습니다.