如何使用Android在网站上填写表单进行登录

时间:2015-03-31 10:26:19

标签: android html forms login

我尝试登录的网站上有一个表格,您应该提供用户名和密码,选中一个框,然后按一下登录按钮。我尝试了各种httpClient POST消息,但似乎它无法正常工作。任何人都可以协助并指向一个Android Java方式的骨架登录示例吗?这是html页面中的表单:

    <form name="loginForm" method="post" action="/login.do">
    <table border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td width="10px">&nbsp;</td>
            <td><label class="formLabel" for="loginID">Username</label></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><input type="text" name="username" value="" class="formTextField"></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><label class="formLabel" for="password"> Password</label></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><input type="password" name="password" value="" class="formTextField"></td>
        </tr>

        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><input type="checkbox" name="agreement" value="on" class="formTextField"> 

                I agree with <div>
                <b><a href="javascript:openPopup('ext/ibsContent/terms.pdf')">Terms and Conditions</a></b></div>

                </td>
        </tr>

    </table>
    <p><input type="submit" value="Login" class="FPFormFieldB"></p>
    <p><a href="navigate.do?anode=user_ChangePassword">Have you forgotten the password?</a></p>
    <p><a href="navigate.do?anode=user_Registration">New user registration</a></p>

    </form>

1 个答案:

答案 0 :(得分:0)

我设法使用JSOUP登录。 关键是你需要先使用cokies(包括SessionID和其他东西)先获取,然后发布帖子。

以下是适用于我的代码,希望它可以帮助其他人:

import android.provider.DocumentsContract;

import org.jsoup.Jsoup;
import org.jsoup.Connection;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;


public class Webbing {

public static void Open() throws Exception {

    Connection.Response loginForm = Jsoup.connect("http://your website")
            .method(Connection.Method.GET)
            .execute();

    Document document = Jsoup.connect("http://your website")
            .data("username", "XXX")
            .data("password", "YYY")
            .data("agreement", "on")
            .timeout(5000)
            .cookies(loginForm.cookies())
            .post();

    String url = "http://a page you want to load after login";

    Document fpl = Jsoup.connect(url)
            .timeout(5000)
            .cookies(loginForm.cookies())
            .get();
    body = fpl.body().toString();
    ExtFile.write(body);

}

}