在Android上发送发布请求

时间:2015-08-02 23:00:44

标签: java android html post

在我开始之前,我想说的是,我知道有很多类似的问题要问我,我已经阅读过这些问题并尝试了可能解决我问题的答案。到目前为止,我无法找到合适的解决方案。

我正在尝试创建一个Android应用程序来直接向我显示我的工作时间表,而无需登录该网站。稍后,我将添加将日程安排添加到Google日历的功能,但我会弄清楚当我使用必需品时如何工作。

由于我在使用Java方面比使用Android更有经验,因此我决定使用JavaFX测试基本思想;我创建了一个登录的简单应用程序,下载包含日期和时间表的网页,并将它们显示在我自己的整洁表中。我使用HtmlUnit创建了这个应用程序,并让它工作得很好。不幸的是,不可能在Android上使用HtmlUnit,我在这里寻找替代方案。

我必须实现的基本功能:

  • 加载包含登录表单的网页(some.url.com/path/to/schedule)
  • 填写用户名和密码,然后提交表格
  • 获取向我显示的网页,并从中检索数据
  • 将信息放在HashMap中,并在我自己的表格中使用它

我用来在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>&nbsp <INPUT TYPE="SUBMIT" VALUE="Aanmelden">
</FORM>

是否有人愿意为我提供合适的替代方案,以便我在登录后阅读提交给我的页面?

0 个答案:

没有答案