Я использую Html Unit, чтобы перейти на веб-страницу, заполнить некоторые формы и нажать кнопку, чтобы перейти на следующую веб-страницу. Эта новая веб-страница (в моем коде она называется newPage) - это то, из чего я извлекаю источник html.
Этот метод отлично работает в Netbeans (хотя он выдает слишком много предупреждений)
import org.jsoup.Jsoup;
/* Regular (textview, button, etc) imports */
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
String username = "USERNAME", school = "SCHOOL", userpassword = "PASSWORD";
HtmlElement loginName = null;
HtmlElement password = null;
//HtmlPage newPage;
HtmlAnchor anchorByHref = null;
try {
WebClient webClient = new WebClient();
final HtmlPage page = webClient
.getPage("https://cupertino.schoolloop.com/portal/login?d=x&return_url=1325402408153");
loginName = page.getElementByName("login_name");
password = page.getElementByName("password");
loginName.setTextContent(username);
loginName.setAttribute("value", username);
password.setAttribute("value", userpassword);
password.setTextContent(userpassword);
anchorByHref = page
.getAnchorByHref("javascript:document.form.event_override.value='login';document.form.submit();");
HtmlPage newPage = anchorByHref.click();
webClient.waitForBackgroundJavaScript(10000);
String html = newPage.getWebResponse().getContentAsString();
message2.setText(html);
} catch (Exception e) {
e.printStackTrace();
}
}
Однако в Eclipse, работающем под Android, написано
01-02 17:38:54.099: E/dalvikvm(23163): Could not find class 'org.w3c.dom.css.CSSCharsetRule', referenced from method com.gargoylesoftware.htmlunit.javascript.host.css.CSSCharsetRule.getCharsetRule
в logcat.
Кроме того, не устанавливает текст message2 в качестве HTML, который я хочу , хотя, когда я пытаюсь сделать это в Netbeans и печатать "html", он фактически печатает полный HTML-код страницы!
В итоге есть 2 проблемы. Eclipse не может успешно получить html и выдает ошибку, в которой говорится, что не удалось найти класс CSSCharsetRule. Я думаю, что импортировал соответствующий .jar для этого, но я не уверен, потому что в HTML-модуле содержится около 15 .jar, и я не могу импортировать их все, иначе у приложения возникнут проблемы с эмулятором и телефоном.
I have figured out that the error was due to not importing xml-apis-1.3.04.jar (which was imported in the Netbeans Project).
Однако теперь я сталкиваюсь с
"Преобразование в формат Dalvik завершилось ошибкой 1"
Error.
Возможно ли, что любая из проблем приведет к значению html, равному Null, и как я могу исправить ошибку преобразования Dalvik?
.jar Eclipse (слишком много делает приложение тяжелым, а включение xml-apis вызывает ошибку Dalvik)
Jar-файлы в Netbeans (работающие)