며칠째 해결하지 못해 질문합니다.. 제발 도와주세요 ㅠㅠ..
제가 요청을 한 url에서 응답이 없으면 timeout 으로 지정하려고 합니다.
그래서 아래처럼 소스를 구현했습니다.
Set lobjHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
lResolve = 5 * 1000
lConnect = 5 * 1000
lSend = 15 * 1000
lReceive = 60 * 1000
lobjHttp.setTimeouts lResolve, lConnect, lSend, lReceive
lobjHttp.open strMethod, lstrTargetUrl, false
lobjHttp.setOption 2, 13056 'Ignore all the Certificate errors
lobjHttp.setRequestHeader "Content-type", "application/json"
lobjHttp.Send lstrPostData
lintRetVal = lobjHttp.status
lstrError = lobjHttp.statusText
------------------------------------------------
lobjHttp.setTimeouts lResolve, lConnect, lSend, lReceive
이 부분이 타임아웃이 세팅된 부분인데요, lReceive 를 60초로 세팅하였습니다.
문제는 타임아웃인걸 어떻게 알고 분기처리를 하냐입니다.
먼저 lintRetVal 를 찍어보면 0으로 출력됩니다.
HTTP status 가 0인것을 타임아웃이라 볼수는 없을것 같아 이건 아닌거 같습니다.
Err.Number를 찍어보면 "-2147483638" 가 출력됩니다.
하지만 Err.Number에 대해 찾아보니 0이상으로 오류값이 출력된다고 하더군요
이 값을 가지고 처리하긴 힘들것같습니다.
따라서 저는 타임아웃을 처리하기위해 어떤값을 활용해야하는지 모르겠습니다.
찾아보니 http status가 408 이면 타임아웃 이런 말이 있던데
http status 는 0으로 출력되어.....
이건아닌거같ㄱ습니다..
혹시 도움 주실분이 계씨면 정말 좋겠습ㄴ디ㅏ ..ㅠ