서버에 open connect 를 하고나서 서버에서 응답 코드(getResponseCode) 를 받는데
시간이 오래걸리는 경우가 있습니다.
예를 들어 5초 이상 응답코드가 안오는 경우 그냥 앱을 종료하게 하고 싶은데요.
아래 코드 처럼 setTimer 도 지정해보았으나 별 소용이 없습니다..
어떤 문제인지 아시는 분 답글 부탁드립니다.
Log.d(TAG, "open Url: " + conn.getURL());
conn.setConnectTimeout(adInfo.getConnectiontimeout()); // 5초
conn.setReadTimeout(adInfo.getConnectiontimeout()); // 5초
conn.setRequestProperty("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
conn.setRequestProperty("User-Agent", mDeviceInfo.getUserAgent());
// conn.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
int responseCode = conn.getResponseCode();
// Log.d(TAG, "response code: " + responseCode);
switch(responseCode){ // HTTP_OK 가 떨어지나 responseCode 값이 너무 늦게 옴
// 이런경우 5초 이상이 걸리면 그냥 종료하게 하고 싶어서 timeout 설정도
하였으나 실제 동작이 안됨
case HttpURLConnection.HTTP_OK:
저도 몇일 전에 이부분 때문에 고생 했었는데여 ㅎ
그 부분은 thread로 돌려 버리세요
그리고 SocketTimeoutException 꼭 사용 해서 exception 처리 해놓으면
응답 시간이 지나가도 프로그램 다운은 되지 않을꺼에요 ㅎ
즐거운 코딩 하세요