繁体   English   中英

如何使用Android填写网站表单来登录

[英]How to login by filling a form in a website using Android

我正在尝试登录具有您应提供用户名和密码的表格的网站,选中一个复选框,然后按登录按钮。 我尝试了各种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>

我设法使用JSOUP登录。 关键是您需要先获取代码,然后再获取代码(包括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);

}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM