2017-03-15 9 views
1

Jsoup를 사용하여 사이트에 로그인하기 위해 웹 사이트에 데이터를 POST하려고합니다. 이 HTML 양식입니다 :jsoup 게시 요청을 사용하여 단추 이름없이 양식을 제출하는 방법

<form action="/user/login" method="POST"> 
 
    <table> 
 
    <tr> 
 
     <td><label for="email">E-Mail:</label></td> 
 
     <td><input name="email" value="" /></td> 
 
    </tr> 
 
    <tr> 
 
     <td><label for="password">Passwort:</label></td> 
 
     <td><input name="password" type="password" /></td> 
 
    </tr> 
 
    <tr> 
 
     <td><input type="submit" value="Login" /></td> 
 
    </tr> 
 
    </table> 
 
    </form>

여기 내 코드입니다 :

Connection.Response loginForm = Jsoup.connect(LOGINWEBSITE) 
        .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0") 
        .method(Connection.Method.GET) 
        .execute(); 


      Document login = Jsoup.connect(LOGIN_URL) 
        .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0") 
        .data("cookieexists", "false") 
        .data("email", email) 
        .data("password", password) 
        .cookies(loginForm.cookies()) 
        .post(); 

그러나이 작동하지 않습니다. 다른 웹 사이트의 경우 단추를 추가하기 만하면됩니다. 버튼에 이름이 없으므로 여기서는 작동하지 않습니다. 기본적으로 보낸 사람을 제출하는 방법을 알고 싶습니다. 이 문제를 어떻게 해결할 수 있습니까? 많은 감사.

+0

지금까지 어떤 시도를 했습니까? 문제가 어디에 있습니까? 더 정확히 당신이 기대하는 것을 제발. – luksch

+0

미안 해요 stackoverflow에 새로운 해요, 그래서 실수로 끝나기 전에 내 질문을 게시했습니다. 그래도 편집 됨 – Allan36j

+0

질문이 해결되면 솔루션을 찾는 데 도움이 될 경우 내 대답을 수락하는 것이 좋습니다. 솔루션이 다른 경우 여기에 자신의 답변을 작성하고 대기 시간 후 허용 할 수 있습니다. 이렇게하면 다른 사람들에게이 문제가 해결되고 더 이상주의를 기울일 필요가 없음을 알릴 수 있습니다. 조금 더 평판이 나면 답변 및 질문을 위로 또는 아래로 시작할 수도 있습니다. 여기에 좋은 시간을 갖기를 바랍니다. – luksch

답변

0

게시 요청에 필요한 쿠키/토큰을 모두 얻으려면 먼저 GET 요청으로 로그인 페이지에 액세스해야합니다. 연결하려는 URL을 언급하지 않았으므로 확인할 수 없습니다. 귀하가 직접 로그인 할 때 브라우저 개발자 도구로 네트워크 트래픽을 기록합니다. 그런 다음 실제로 전송 된 데이터를 분석하십시오. 일반적으로 성공적인 로그인을 위해 게시 요청과 함께 전달해야하는 필수 토큰/쿠키를 쉽게 식별 할 수 있습니다.

+1

시간 내 주셔서 감사합니다. 충분한 정보를 제공하지 못해 죄송 합니다만, 귀하가 언급 한 모든 내용을 확인했습니다. 요청에서 ".data ("cookieexists ","false ")"를 제거하여 현재 문제를 해결할 수있었습니다. – Allan36j