안드로이드 개발 질문/답변
(글 수 45,052)
며칠전 올린질문인데 해결이 않되서 다시 올립니다. 통신관련 문제로 몇일간 삽질중인데 해결이 않되네요 ㅜㅜ
HttpClient나 HttpURLConnection를 이용해서 HTTP 서버와 통신을 하는데요.
일반적인 경우 이상없이 잘됩니다. 웹서비스를 이용해 주로 데이터베이스의 select 결과를 내려받는데 잘동작하구요.
그런데 데이터 처리가 복잡해서 서버의 응답이 1분이상 지연될 경우가 있는데요. 이런경우 문제가 발생하네요.
늦더라도 서버에서는 응답이 오는데 안드로이드 클라이언트가 인식을 못하는듯 합니다.
자세히 말씀드리자면...
HttpURLConnection를 이용할 경우는 getInputStream() 호출에서 그대로 멈춰있습니다.
HttpClient 를 사용할 경우는 execute 메서드를 호출하는 곳에서 멈춰버립니다.
원래 HttpURLConnection로 구현해서 잘 돌아다던건데 이런 문제가 있어서 HttpClient 를 이용해 다시 구현했는데.. 동일한 증상이 나타납니다.
참고로... setConnectTimeout와 setReadTimeout는 사용해봤는데요... 타임아웃과는 상관이 없어 보입니다.
증상을 예를들어 설명드리자면...
타임아웃을 2분으로 설정한 경우...
요청한 결과가 1분후에 서버로부터 날아옵니다.(네트웍 모니터 툴을 통해 확인가능합니다.)
그러나 프로그램에서는 인식을하지못하구요... 2분이 되면 타임아웃이 발생하죠.
만약 타임아웃을 무한대로 설정하면 무한정 기다리기만 합니다. 아무런 에러도 발생하지 않구요... --;
서버의 응답이 빠른경우는 전혀 문제가 없습니다. 저는 안드로이드 통신 라이브러리의 버그로 생각하고 있는데..
해결방법이 있는지 찾고 있는 중입니다. ㅜㅜ
이런 경험있으신 분 계시면 부탁좀드리겠습니다.