我有一个需要验证的网址(例如出现浏览器弹出窗口,询问用户名和密码。)
通常,我们可以使用以下格式来实现此目的:
http://username:[email protected]
使用RESTEasy客户端构建器
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://url.com");
如何在无需构建http://username:[email protected]
自己的情况下实现它?我看过是否有任何方法可以用来设置它,但是没有运气。另外,我不确定如何传递这些凭据,标题,Cookie等。
看起来像基本身份验证。如果是这种情况,则只需将Authorization
标头设置为Basic base64encode(username:password)
。
例如:
String credentials = "username:password"
String base64encoded = Base64.getEncoder().encodeToString(credentials.getBytes());
Response response = target.request()
.header(HttpHeaders.AUTHORIZATION, "Basic " + base64encoded)....
Base64
我使用的类来自Java8。如果您未使用Java 8,则有些库具有Base64支持。在Java 8之前,有一个com.sun
内部Base64
类,但建议不要使用它们。
如果您只是想进行快速测试(并且没有Java 8或不想去寻找lib),则可以转到该站点并键入您的代码username:password
并对其进行编码,然后复制并粘贴即可您的代码。
例如:
base64encode(username:password) == dXNlcm5hbWU6cGFzc3dvcmQ=
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句