能否请您告诉我以下代码的作用?从哪里获取主机名,验证方法的目的是什么?
static {
//for localhost testing only
javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(
new javax.net.ssl.HostnameVerifier(){
public boolean verify(String hostname,
javax.net.ssl.SSLSession sslSession) {
System.out.println(" hostname = " + hostname);
if (hostname.equals("localhost")) {
return true;
}
return false;
}
});
}
答案 0 :(得分:1)
当您连接到HTTPS URL时,目标站点将显示其证书,该证书包含可以使用该证书的域的列表。 (请参见下面的示例图片)。当您获得HttpsURLConnection
在您发布的代码中,您正在定义一个HostnameVerifier
,当上述检查失败时,该df_aux
将被调用。如果要连接的域是localhost,则允许连接设置继续。这使您可以将任何证书用于https://localhost域中的服务。