我使用了Apache文档中的示例代码,如下所示:
final WebClient webClient = new WebClient();
// Get the first page
final HtmlPage page1 = webClient.getPage("http://some_url");
// Get the form that we are dealing with and within that form,
// find the submit button and the field that we want to change.
final HtmlForm form = page1.getFormByName("myform");
final HtmlSubmitInput button = form.getInputByName("submitbutton");
final HtmlTextInput textField = form.getInputByName("userid");
// Change the value of the text field
textField.setValueAttribute("root");
// Now submit the form by clicking the button and get back the second page.
final HtmlPage page2 = button.click();
webClient.closeAllWindows();
我从WebClient,HtmlPage,HtmlForm中得到错误...基本上,应该从Apache导入的所有东西,都不是。
我已经跟随网上的一些指南,指导我在我的构建路径中添加外部jar,据我所知,所有内容都已正确设置。我尝试过清理项目,重启Eclipse,关闭/打开项目等等。似乎没什么用。
作为参考,我从这个网站下载了.JAR:http://hc.apache.org/。
我的导入声明:
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
我的错误讯息:
[2014-06-23 12:43:55 - CampusHappenings] Dx 1错误;中止 [2014-06-23 12:43:55 - CampusHappenings]转换为Dalvik格式失败,错误1
整个堆栈跟踪复制太长了,但它与htmlunit JAR本身有关,而不是我的代码。他们都看起来像这样:
Dx警告:忽略匿名内部类的InnerClasses属性 (org.apache.xalan.lib.sql.SecuritySupport12 $ 4)并没有带来 关联的EnclosingMethod属性。这堂课可能是由一个 没有以现代.class文件格式为目标的编译器。
思考?我很困惑。
答案 0 :(得分:1)
由于我在错误日志中看到了Dalvik,我假设您正在为Android编写代码但是尝试使用可能与Android不兼容的Apache的HttpClient的常见版本。您应该检查这个Apache的文档并尝试专门针对Android的4.3端口。
https://hc.apache.org/httpcomponents-client-4.3.x/android-port.html
可以在此处找到适用于Android jar的HttpClient:http://search.maven.org/remotecontent?filepath=org/apache/httpcomponents/httpclient-android/4.3.3/httpclient-android-4.3.3.jar