Android 使用<;noscript>;
因此,我正在开发一个Android应用程序,目的是登录到一个网站并从返回的页面中获取数据。但是,我无法使用Jsoup或apachehttpclient等方法登录网站,因为这些方法会触发页面上的响应,提示我启用JavaScript以访问页面。HtmlUnit将是一个很好的解决方案,但是它的大量JAR使我无法在Android应用程序上使用它 我应该做些什么来解决这个问题 这是我正在尝试登录的网站: 谢谢 编辑:以下是jSoup的代码Android 使用<;noscript>;,android,web,Android,Web,因此,我正在开发一个Android应用程序,目的是登录到一个网站并从返回的页面中获取数据。但是,我无法使用Jsoup或apachehttpclient等方法登录网站,因为这些方法会触发页面上的响应,提示我启用JavaScript以访问页面。HtmlUnit将是一个很好的解决方案,但是它的大量JAR使我无法在Android应用程序上使用它 我应该做些什么来解决这个问题 这是我正在尝试登录的网站: 谢谢 编辑:以下是jSoup的代码 try { Document doc = Jso
try {
Document doc = Jsoup.connect("https://grades.bsd405.org/Pinnacle/Gradebook/Logon.aspx")
.data("ctl00$ContentPlaceHolder$Username", "myusername")
.data("ctl00$ContentPlaceHolder$Password","mypassword")
.data("ctl00$ContentPlaceHolder$LogonButton","Sign in").post();
System.out.println(doc.text());
} catch (IOException e) {
e.printStackTrace();
}
对我来说呢
public static void main(String[] args) throws FailingHttpStatusCodeException, MalformedURLException, IOException{
final WebClient webClient = new WebClient();
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
final HtmlPage page1 = webClient.getPage("https://grades.bsd405.org/Pinnacle/Gradebook/InternetViewer/GradeSummary.aspx");
final HtmlForm form = page1.getForms().get(0);
final HtmlSubmitInput button = form.getInputByName("ctl00$ContentPlaceHolder$LogonButton");
final HtmlTextInput textField = form.getInputByName("ctl00$ContentPlaceHolder$Username");
final HtmlPasswordInput passField = form.getInputByName("ctl00$ContentPlaceHolder$Password");
textField.setValueAttribute("myusername");
passField.setValueAttribute("mypassword");
final HtmlPage page2 = button.click();
displayGrades(page2);
webClient.closeAllWindows();
}
private static void displayGrades(HtmlPage page) {
System.out.println(page.asXml());
HtmlDivision div = (HtmlDivision) page.getHtmlElementById("Content");
final HtmlTable table = (HtmlTable) div.getByXPath("//table[@class='reportTable']").get(0);
try{
System.out.println(table.asText());
}catch (NullPointerException e){
e.printStackTrace();
}
}
请显示您尝试使用这两种方法登录的代码。正如我之前所述,HtmlUnit是不可能的选项,因为它无法移植到移动应用程序中,因为它有大量的JAR文件。