首先,您可以使用String.format 进行格式化:
String url=String.format("https://%s/redfish/v1/%s",ip,query);
如果你愿意,你也可以使用MessageFormat。
对于连接,您可以创建一个URL-object 并创建一个URLConnection(在您的情况下为HttpsURLConnection),然后打开一个InputStream 以获取之后的响应:
HttpsURLConnectioncon=(HttpsURLConnection)new URL(url).openConnection();
try(BufferedInputStream is=new BufferedInputStream(con.openStream()){
//...
}
为了进行身份验证,您可以查看this tutorial:
String auth = "ADMIN:ADMIN";
byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.UTF_8));
//Get the HttpURLConnection
con.setRequestProperty("Authorization", authHeaderValue);
//Connect/open InputStream
如果你真的想禁用验证,你可以创建你自己的HostnameVerifier,它允许一切,但强烈建议不要这样做,因为这允许中间人攻击,因为你基本上禁用HTTPS 的安全性:
con.setHostnameVerifier((hostname,sslSession)->true);
所有组合起来,它可能看起来像这样:
String url=String.format("https://%s/redfish/v1/%s",ip,query);
String auth = "ADMIN:ADMIN";
byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.UTF_8));
String authHeaderValue = "Basic " + new String(encodedAuth);
HttpsURLConnection con=(HttpsURLConnection)new URL(url).openConnection();
con.setRequestProperty("Authorization", authHeaderValue);
con.setHostnameVerifier((hostname,sslSession)->true);//vulnerable to man in the middle attacks
try(BufferedInputStream is=new BufferedInputStream(con.openStream()){
//...
}