Java 如何使用RESTEasy客户端生成器设置用户名和密码?
我有一个需要验证的url(比如出现一个浏览器弹出窗口,询问用户名和密码。) 通常,我们可以使用以下格式来实现这一点:Java 如何使用RESTEasy客户端生成器设置用户名和密码?,java,http,http-headers,jax-rs,resteasy,Java,Http,Http Headers,Jax Rs,Resteasy,我有一个需要验证的url(比如出现一个浏览器弹出窗口,询问用户名和密码。) 通常,我们可以使用以下格式来实现这一点: http://username:password@url.com 使用RESTEasy客户端生成器 Client client = ClientBuilder.newClient(); WebTarget target = client.target("http://url.com"); 如何在不必构造http://username:password@url.com我自己
http://username:password@url.com
使用RESTEasy客户端生成器
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://url.com");
如何在不必构造http://username:password@url.com
我自己?我知道有没有什么方法可以让我在没有运气的情况下设置它。此外,我也不确定这些凭证是如何传递的,如标题、cookie等。如果是这种情况,只需将授权
标题设置为基本base64encode(用户名:密码)
例如:
String credentials = "username:password"
String base64encoded = Base64.getEncoder().encodeToString(credentials.getBytes());
Response response = target.request()
.header(HttpHeaders.AUTHORIZATION, "Basic " + base64encoded)....
base64encode(username:password) == dXNlcm5hbWU6cGFzc3dvcmQ=
我使用的类来自Java8。如果您不使用Java8,那么有些库支持Base64。在Java8之前,有一个com.sun
内部Base64
类,但建议不要使用这些类
如果您只想运行一个快速测试(并且没有Java 8或不想去寻找lib),您可以转到并键入您的username:password
并对其进行编码,然后复制并粘贴到您的代码中
例如:
String credentials = "username:password"
String base64encoded = Base64.getEncoder().encodeToString(credentials.getBytes());
Response response = target.request()
.header(HttpHeaders.AUTHORIZATION, "Basic " + base64encoded)....
base64encode(username:password) == dXNlcm5hbWU6cGFzc3dvcmQ=
它是什么类型的身份验证,基本??