首页 > 解决方案 > 我的函数在java中工作,但是当我把它放在我的javafx控制器中时,函数只给出一个错误的布尔输出

问题描述

我的按钮的功能,按下它会改变我的图像视图。

    public void checkWebsite(ActionEvent event) {
    String url = "https://" + urlInput;

    if (testConnectionTo(url) == true) {
        System.out.println("boolean true");
        img.setImage(new Image("/image/safe.png"));
    } else if (testConnectionTo(url) == false) {
        System.out.println("boolean false");
        img.setImage(new Image("/image/unsafe.png"));
    }
}

检查网站证书的功能。

    public static boolean testConnectionTo(String aURL) {
    try {
        URL destinationURL = new URL(aURL);
        HttpsURLConnection conn = (HttpsURLConnection) destinationURL.openConnection();
        conn.connect();
        Certificate[] certs = conn.getServerCertificates();
        for (Certificate cert : certs) {
            if (cert instanceof X509Certificate) {
                ((X509Certificate) cert).checkValidity();
            }
        }
        return true;

    } catch (CertificateExpiredException e) {
        return false;

    } catch (Exception e) {
        return false;
    }
}

在我的 java 文件中它工作得很好(有效的证书将返回真实的输出,无效的证书将返回错误的输出)

但是,当我使用我的函数来检查证书时,它只返回一个错误的输出,我不知道为什么。

标签: javajavafx

解决方案


推荐阅读