如何使用Java代码设置基本身份验证用户名和密码

问题描述

当前我的设置如下:

connection.setRequestProperty("Authorization","Basic NDUwNjMyOTc6U2hyaXNo2weQDEy"); 

Basic NDUwNjMyOTc6U2hyaXNo2weQDEy"----------这部分是我使用邮递员生成的。但其中包含user名称password

如何使用Java生成此验证Basic NDUwNjMyOTc6U2hyaXNo2weQDEy并将其传递到setRequestProperty中。

预先感谢:)

解决方法

基本认证标头是使用基数64从username:password生成的, 标头授权值可以这样生成:

Encoder encoder = Base64.getEncoder();
String originalString = username+":"+password;
String encodedString = encoder.encodeToString(originalString.getBytes());

String headerAthorization="Basic "+encodedString;
,

您添加标头Basic ENCODED,其中编码为"user:password"的base64。 例如,请参见https://github.com/jcabi/jcabi-http/blob/master/src/main/java/com/jcabi/http/wire/BasicAuthWire.java#L123