是否可以通过提供凭证而不处理表单来验证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;
}