在我开始之前,我想说的是,我知道有很多类似的问题要问我,我已经阅读过这些问题并尝试了可能解决我问题的答案。到目前为止,我无法找到合适的解决方案。
我正在尝试创建一个Android应用程序来直接向我显示我的工作时间表,而无需登录该网站。稍后,我将添加将日程安排添加到Google日历的功能,但我会弄清楚当我使用必需品时如何工作。
由于我在使用Java方面比使用Android更有经验,因此我决定使用JavaFX测试基本思想;我创建了一个登录的简单应用程序,下载包含日期和时间表的网页,并将它们显示在我自己的整洁表中。我使用HtmlUnit创建了这个应用程序,并让它工作得很好。不幸的是,不可能在Android上使用HtmlUnit,我在这里寻找替代方案。
我必须实现的基本功能:
我用来在Java中实现所需结果的代码:
java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF);
final WebClient webClient = new WebClient(BrowserVersion.CHROME);
final HtmlPage page1 = webClient.getPage("---HIDDEN---");
final HtmlForm form = page1.getFirstByXPath("//form[@action='/pkmslogin.form']");
final HtmlSubmitInput button = form.getInputByValue("Aanmelden");
final HtmlTextInput usernameField = form.getInputByName("username");
final HtmlPasswordInput passwordField = form.getInputByName("password");
usernameField.setValueAttribute("---HIDDEN---");
passwordField.setValueAttribute("---HIDDEN---");
final HtmlPage page2 = button.click();
final HtmlTable table = page2.getHtmlElementById("viewPC_7_O49HSGU21834502RCI9ODP2022_:tableEx1");
我还没有找到允许我在Android上复制此内容的内容。我认为问题在于Web服务器如何处理登录,因为它不使用PHP脚本。登录表格:
<FORM onSubmit="return checkrequired(this)" METHOD=POST ACTION="/pkmslogin.form">
<FONT SIZE="+2">
<TABLE BORDER="0" WIDTH="400">
<TR>
<TD ALIGN="LEFT"><UL><LI>Gebruikersnaam</LI></UL></TD>
<TD><INPUT TYPE="TEXT" NAME="username" SIZE="15" AUTOCOMPLETE="off">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT"><UL><LI>Wachtwoord</LI></UL></TD>
<TD><INPUT TYPE="PASSWORD" NAME="password" SIZE="15" AUTOCOMPLETE="off"></TD>
<INPUT TYPE="HIDDEN" NAME="login-form-type" VALUE="pwd">
</TR>
</TABLE>
</FONT>
<BR>  <INPUT TYPE="SUBMIT" VALUE="Aanmelden">
</FORM>
是否有人愿意为我提供合适的替代方案,以便我在登录后阅读提交给我的页面?