Notice
Recent Posts
Recent Comments
Link
투케이2K
208. (TWOK/WORK) [업무 이슈] 안드로이드 HTTP 폴링 조회 시 인터넷 사용 불가능한 와이파이에 자동 연결 되어 (SoftAp) HTTP 요청이 지속 실패 되는 이슈 본문
투케이2K 업무정리
208. (TWOK/WORK) [업무 이슈] 안드로이드 HTTP 폴링 조회 시 인터넷 사용 불가능한 와이파이에 자동 연결 되어 (SoftAp) HTTP 요청이 지속 실패 되는 이슈
투케이2K 2026. 4. 9. 19:35728x90
반응형
[제 목]
주제 : 투케이2K 업무 정리
타이틀 : 투케이 / 2k / 업무 정리
제목 : [업무 이슈] 안드로이드 HTTP 폴링 조회 시 인터넷 사용 불가능한 와이파이에 자동 연결 되어 (SoftAp) HTTP 요청이 지속 실패 되는 이슈

[내 용]
------------------------------------------------------------------------------
[개발 및 테스트 환경]
------------------------------------------------------------------------------
- 제 목 : [업무 이슈] 안드로이드 static 변수 선언 한 휘발성 데이터 유실로 데이터 null 전송 이슈
- 테스트 환경 : Android / Java
- 사전) 👉 HTTP 폴링 조회 간략 설명 :
>> HTTP 폴링 조회는 클라이언트가 일정한 주기로 서버에 HTTP 요청을 보내서 상태나 데이터를 확인하는 방식입니다.
>> HTTP 폴링 조회는 클라이언트가 주기적으로 “변경된 거 있어?” 라고 서버에 물어보며, 주로 GET 요청 형태로 사용됩니다.
>> HTTP 폴링 조회 동작 흐름 :
--------------------------
Client Server
--------------------------
| ---- 요청 ----> |
| <--- 응답 ---- |
(잠시 대기)
| ---- 요청 ----> |
| <--- 응답 ---- |
--------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[이슈 사항]
------------------------------------------------------------------------------
1. 안드로이드 http 통신 api 폴링 호출 시 폴링 중간에 인터넷 사용 불가능한 와이파이에 자동 연결 되어 지속적으로 폴링 조회가 실패하는 이슈 발생
2. ☑️ 안드로이드 http 통신 api 폴링 수행 시 로직 :
>> 안드로이드 폴링 API 호출 시 서버 응답 에러 코드가 내려오거나, 비정상 데이터가 내려오더라도 지정 된 횟수 만큼 HTTP 호출 수행
>> 폴링을 수행하며, 지정 된 횟수 내에 정상 성공 응답 및 데이터가 내려온 경우 for 반복문 break 탈출 수행
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------
1. 안드로이드 애플리케이션 실행 및 http 통신 api 폴링 호출 수행 액티비티 화면 진입
2. 안드로이드 api 폴링 동작 수행 실시 (☑️ 현재는 정상 인터넷 사용 가능한 와이파이 또는 셀룰러 데이터 사용 상태)
3. api 호출 진행 중 상태에서 휴대폰 상단 바를 내려 인터넷 사용 불가능한 와이파이에 연결 수행
4. 비정상 와이파이에 연결 되었지만, 폴링 동작이 지정 된 횟수만큼 계속 동작 되는 것 확인
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------
1. 안드로이드 폴링 동작 수행 시 지정 된 횟수 카운트 마다 인터넷 연결 상태 확인 코드 추가
>> ✅ 예시 코드 for 반복문 간략 코드 :
for (int i=0; i<30; i++){
// HTTP 요청 수행 ....
// ✅ 지정 된 횟수 체크 (5 배수 마다 인터넷 연결 상태 체크)
if (i > 0 && i%5 == 0){
if (인터넷 연결 상태 체크 시 false 인 경우){
break; // 반복 문 탈출
}
}
// 일정 시간 스레드 대기 후 재요청 ...
}
2. 만약, 지정 된 횟수에 인터넷 사용이 불가능한 상태 인 경우 for 반복문 break 탈출 후 사용자에게 경고 팝업창 표시 수행
3. 안드로이드 현재 인터넷 사용 가능 상태 체크 소스 코드 첨부 :
// [ConnectivityManager 생성]
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// [안드로이드 버전 분기 처리]
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
Network network = cm.getActiveNetwork();
NetworkCapabilities networkCapabilities = cm.getNetworkCapabilities(network);
// ✅ [인터넷 사용가능 하고 , 유효한 연결인지 확인 수행]
boolean hasCapabilityInternet = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
boolean hasCapabilityValidated = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
// ✅ [and 결과로 인터넷 사용 가능한 네트워크 환경 상태 체크]
boolean result = (hasCapabilityInternet && hasCapabilityValidated);
S_Log._W_("현재 연결된 네트워크 인터넷 사용 가능 상태 확인", new String[]{
"result :: " + String.valueOf(result)
});
}
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------
▶️ [ConnectivityManager , NetworkCapabilities 사용해 현재 휴대폰 인터넷 사용 가능 상태 확인]
https://kkh0977.tistory.com/7349
https://blog.naver.com/kkh0977/223668787254?trackingCode=blog_bloghome_searchlist
▶️ [android] 안드로이드 http 통신 api 호출 폴링 수행 시 액티비티 종료 상태 체크 및 폴링 로직 종료 수행
https://kkh0977.tistory.com/7697
https://blog.naver.com/kkh0977/223759676308?trackingCode=blog_bloghome_searchlist
▶️ [업무 이슈] 안드로이드 android http 통신 api 호출 폴링 수행 시 액티비티가 종료 된 상태에서도 api 호출이 지속 되는 이슈
https://kkh0977.tistory.com/7696
https://blog.naver.com/kkh0977/223759660493?trackingCode=blog_bloghome_searchlist
▶️ [Rx] repeatWhen 사용해 http 폴링 방식 요청 수행 실시 - http polling request
https://kkh0977.tistory.com/4764
https://blog.naver.com/kkh0977/223238719346?trackingCode=blog_bloghome_searchlist
------------------------------------------------------------------------------
728x90
반응형
'투케이2K 업무정리' 카테고리의 다른 글
Comments
