HtmlUnit与远程服务器的通信基于底层HttpClient,后者允许通过以编程方式提供凭据来访问需要身份验证的网站。是否可以在不通过登录表单及其元素的情况下使用HtmlUnit执行相同的操作?
答案 0 :(得分:1)
您可以使用
webRequest.setAdditionalHeader() or webClient.addRequestHeader()
答案 1 :(得分:0)
如果我理解你的问题,你想要一个没有模拟表单点击的请求吗?您可以使用WebRequest API
使用POST方法登录private HtmlPage login(String name, String pass) {
WebRequest requestSettings = new WebRequest(new URL(myUrlLoginString), HttpMethod.POST);
// Set the request parameters
ArrayList<NameValuePair> requestParameters = new ArrayList<NameValuePair>();
requestParameters.add(new NameValuePair("login", name));
requestParameters.add(new NameValuePair("password", pass));
requestParameters.add(new NameValuePair("x", "66"));
requestParameters.add(new NameValuePair("y", "28"));
requestSettings.setRequestParameters(requestParameters);
Page page = webClient.getPage(requestSettings);
return (HtmlPage) page;
}