是否可以通过提供凭证而不处理表单来验证HtmlUnit?

问题描述:

HtmlUnit与远程服务器的通信基于底层HttpClient,后者允许通过以编程方式提供凭据来访问需要身份验证的网站。没有通过登录表单及其元素,是否可以用HtmlUnit做同样的事情?是否可以通过提供凭证而不处理表单来验证HtmlUnit?

您可以使用

webRequest.setAdditionalHeader() or webClient.addRequestHeader() 

如果我理解你的问题,你想要做的,而不模拟形式点击一个要求吗?您可以使用POST方法使用WebRequest API

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; 
}