我尝试登录的网站上有一个表格,您应该提供用户名和密码,选中一个框,然后按一下登录按钮。我尝试了各种httpClient POST消息,但似乎它无法正常工作。任何人都可以协助并指向一个Android Java方式的骨架登录示例吗?这是html页面中的表单:
<form name="loginForm" method="post" action="/login.do">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="10px"> </td>
<td><label class="formLabel" for="loginID">Username</label></td>
</tr>
<tr>
<td> </td>
<td><input type="text" name="username" value="" class="formTextField"></td>
</tr>
<tr>
<td> </td>
<td><label class="formLabel" for="password"> Password</label></td>
</tr>
<tr>
<td> </td>
<td><input type="password" name="password" value="" class="formTextField"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </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>
答案 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);
}
}