2017-03-15 45 views
1

我試圖將數據發佈到網站中,使用Jsoup登錄到網站。這是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

對不起,我是一名新手,因此在完成之前我無意中發佈了我的問題。現在編輯 – Allan36j

+0

如果您的問題已解決,那麼您可以考慮接受我的答案,如果幫助您找到解決方案。如果解決方案有所不同,您可以在此創建自己的答案,並在一段等待時間後接受該答案。這會告訴其他人這個問題已經解決,不需要更多的關注。當你有更多的名譽時,你也可以開始和減少回答和問題。我希望你能在這裏度過美好的時光。SO – luksch

回答

0

通常情況下,您需要首先訪問登錄頁面,然後通過GET請求獲取所有需要的Cookie /令牌。由於您沒有提及您嘗試連接的網址,因此我無法爲您檢查。在你的地方,當你手動登錄時,我會用瀏覽器開發工具記錄網絡流量。然後分析實際上來回發送的數據。通常,您可以輕鬆識別需要傳遞的必要令牌/ cookie以及發送成功登錄的請求。

+1

謝謝你的時間。我很抱歉沒有提供足夠的信息,但我已經檢查了您提到的所有內容。我現在通過從請求中刪除「.data(」cookieexists「,」false「)」來設法解決我的問題。 – Allan36j

相關問題