안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
특정 사이트(로그인이 필요합니다)의 HTML소스를 읽어서 분석후 폰의 DB로 저장하는 프로그램을 만들고 있습니다.
HttpPost를 통해 웹사이트에 id랑 pass를 넘겨서 로그인 까지는 성공하였습니다.
그런데 서버에서 준 Response값을 보니 아래와 같이 Redirect하는 스크립트 소스더군요.
<script type="text/javascript">
window.location.replace("새 URL");
</script>
이럴 때 따로 Redirect를 처리하는 방법이 있는지 궁금해 이렇게 질문 드립니다.
ps.새로 HttpURLConnection을 열어 "새 URL" 주소로 접속하려고 했더니 Internal Server Error가 나오네요.ㅠ
자답? 합니다.
1. Redirection을 구현할 순 있으나 쉽지 않더군요. 그리고 뭔가 퍼미션? 관련 이슈가 있어 추가설정을 해 줘야 하는 것 같은데 아직 실력이 없어서 그건 못해봤네요. http://adsgear.tistory.com/48 여기 포스팅을 따라 구현해 봤는데 제경우에는 안맞는거 같습니다.
2. 오히려 WebView를 통하면 JavaScript가 돌아가 알아서 리다이렉션을 처리할 수 있도록 하는건 쉽네요.
webview의 setting값중 setJavaScriptEnabled(true)요걸 해주면 되더군요.
문제는 WebView가 화면에 최종적으로 뿌려주는 내용을 HTML형태로 얻어내는 방법이었는데, 첨엔 WebView자체에서 값을 뽑아내려는 생각만 했는데 답이 안보이더라구요.
하지만 몇일 더 검색한 결과 아래 사이트의 방법으로 해결했습니다.
http://lexandera.com/2009/01/extracting-html-from-a-webview/
WebView가 가져온 소스에 역으로 JavaScript를 집어넣어서?html코드를 가져오는 듯 합니다.(초보라 자세한건 잘 모르겠습니다.ㅠ_ㅠ) 여태까지 JavaScript를 역으로 이용할 생각은 안해봤는데... 역시 아직 생각도 짧고 배울게 많은 것 같습니다.