마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Jsoup을 POST를 이용해서 웹 로그인 질문...!

0 추천
// GET
            // 접속
            Connection.Response LoginTry = Jsoup.connect(LOGIN_URL)
                    .method(Connection.Method.GET)
                    .execute();

            // 접속 된 쿠키
            Map<String, String> loginTryCookies  = LoginTry.cookies();

            // 전송 토큰(input)에 대한 정보 저장 ( id, password, hidden 값 5개, btn )
            Document LoginTryDocument = LoginTry.parse();
            //Elements INPUT_ELEMENTS = LoginTryDocument.getAllElements().select("input"); // input 태그 확인하기

            // hidden input val 저장
            String __EVENTTARGET =  LoginTryDocument.select("input[name=__EVENTTARGET]").attr("value");
            String __EVENTARGUMENT = LoginTryDocument.select("input[name=__EVENTARGUMENT]").attr("value");
            String __VIEWSTATE = LoginTryDocument.select("input[name=__VIEWSTATE]").attr("value");
            String __VIEWSTATEGENERATOR = LoginTryDocument.select("input[name=__VIEWSTATEGENERATOR]").attr("value");
            String __EVENTVALIDATION = LoginTryDocument.select("input[name=__EVENTVALIDATION]").attr("value");

            // 전송 폼 입력
            Map<String, String>Data = new HashMap<String, String>();
            Data.put("txtStudentCd", 학번");
            Data.put("txtPasswd", "비밀번호");
            Data.put("__EVENTTARGET", __EVENTTARGET);
            Data.put("__EVENTARGUMENT",__EVENTARGUMENT);
            Data.put("__VIEWSTATE", __VIEWSTATE);
            Data.put("__VIEWSTATEGENERATOR", __VIEWSTATEGENERATOR);
            Data.put("__EVENTVALIDATION", __EVENTVALIDATION);

            // Post
            Connection.Response Post_Res = Jsoup.connect(LOGIN_URL)
                    .userAgent(userAgent)
                    .data(Data)
                    .cookies(loginTryCookies)
                    .method(Connection.Method.POST)
                    .execute();

            // Post 후 로그인 쿠키 (해당 쿠키로 로그인 식별 여부를 판단함 )
            Map<String, String>loginCookie = Post_Res.cookies();

 

안녕하세요! 

하루종일 구글링 해도 답이 나오지않아서 이렇게 질문글을 남기게 되었습니다..

안드로이드 스튜디오를 이용해서 학교 관련앱을 제작중입니다.

JSOUP를 이용해서 로그인 폼을 넘겨 POST후 관련정보를 파씽해서 앱을 제작하려고 하는데

POST 하는 도중에 계속 진행이 안됩니다.ㅠㅠ

 

학교 로그인 홈페이지에서 웹 개발자 툴을 이용해서 확인하면 INPUT 태그가 8개가 있는데

5개는 (__EVENTTARGET  hidden type.. 등등..) 은 홈페이지에서 접속후 쿠키에서 그대로 받아와서 data에 넣어주고

3개는 txtStudentCd(학번), txtPasswd(비밀번호), ibtnLogin(로그인) 가 있는데 

학번과 비밀번호는 위에 소스 처럼 처리해줬습니다.

여기서 제가 진행이 안되는 부분이 ibtnLogin 부분이 자바 스크립트로 되어있어서 Jsoup으로 어떻게 처리해야할지 모르겠습니다..ㅠ

그래서 저걸 빼고 POST해줘도 반환되는 쿠키값은 계속 로그인하기전 홈페이지 정보들이 넘어오네요..

이부분을 어떻게 처리해야할지 팁좀 주시면 정말 감사하겠습니다!ㅠㅠ.. 부탁드립니다.

경주 (120 포인트) 님이 2018년 10월 18일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...