gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:23 25 4
gpt4 key购买 nike

我正在尝试为 Web 应用程序编写一个简单的冒烟测试。

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

在测试中,我尝试使用发送基本的身份验证 header

WebClient webClient = new WebClient();

DefaultCredentialsProvider creds = new DefaultCredentialsProvider();

// Set some example credentials
creds.addCredentials("usr", "pwd");

// And now add the provider to the webClient instance
webClient.setCredentialsProvider(creds);

webClient.getPage("<some url>")

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

但是在服务器上我没有得到身份验证 header 。我怀疑 WebClient 仅在服务器明确要求它时才发送身份验证 header ,但这种情况从未发生过。

所以问题是如何让 WebClient 在每个请求(包括第一个请求)上发送身份验证 header ?

最佳答案

这可能有帮助:

WebClient.addRequestHeader(String name, String value)

更具体的可以创建这样的身份验证 header

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

关于java - 使用 HtmlUnit WebClient 为每个请求传递基本身份验证凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8388546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com