使用HtmlUnit WebClient为每个请求传递基本身份验证凭据

使用HtmlUnit WebClient为每个请求传递基本身份验证凭据,第1张

概述我正在尝试为Web应用程序编写一个简单的冒烟测试. 应用程序通常使用基于表单的身份验证,但也接受基本身份验证,但由于默认情况下是基于表单的身份验证,因此它永远不会发送所需的身份验证,而只是发送登录表单. 在测试中,我尝试使用发送基本的auth头 WebClient webClient = new WebClient();DefaultCredentialsProvider creds = ne 我正在尝试为Web应用程序编写一个简单的冒烟测试.

应用程序通常使用基于表单的身份验证,但也接受基本身份验证,但由于默认情况下是基于表单的身份验证,因此它永远不会发送所需的身份验证,而只是发送登录表单.

在测试中,我尝试使用发送基本的auth头

WebClIEnt webClIEnt = new WebClIEnt();DefaultCredentialsProvIDer creds = new DefaultCredentialsProvIDer();// Set some example credentialscreds.addCredentials("usr","pwd");// And Now add the provIDer to the webClIEnt instancewebClIEnt.setCredentialsProvIDer(creds);webClIEnt.getPage("<some url>")

我还尝试在WebRequest对象中填充凭据并将其传递给webClIEnt.getPage方法.

但在服务器上我没有获得身份验证标头.我怀疑WebClIEnt只有在服务器明确询问它时才会发送身份验证标头,这种情况从未发生过.

所以问题是如何让WebClIEnt在每个请求上发送Authentication头,包括第一个请求?

解决方法 这可能有所帮助:

WebClient.addRequestHeader(String name,String value)

更具体的一个可以创建这样的身份验证标头

private static voID setCredentials(WebClIEnt webClIEnt)  {    String username = "user";    String password = "password";    String base64encodedUsernameAndPassword = base64Encode(username + ":" + password);    webClIEnt.addRequestheader("Authorization","Basic " + base64encodedUsernameAndPassword);  }  private static String base64Encode(String stringToEncode)  {    return DatatypeConverter.printBase64Binary(stringToEncode.getBytes());  }
总结

以上是内存溢出为你收集整理的使用HtmlUnit WebClient为每个请求传递基本身份验证凭据全部内容,希望文章能够帮你解决使用HtmlUnit WebClient为每个请求传递基本身份验证凭据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1109060.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存