是否可以通过提供凭证而不处理表单来使用HtmlUnit进行身份验证?

时间:2015-04-28 17:28:53

标签: java authentication htmlunit

HtmlUnit与远程服务器的通信基于底层HttpClient,后者允许通过以编程方式提供凭据来访问需要身份验证的网站。是否可以在不通过登录表单及其元素的情况下使用HtmlUnit执行相同的操作?

2 个答案:

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