如何在Java中获取任何HTTPS端点的Ping状态



我需要检查https URL是否可用。

以下是代码

URL siteURL = new URL(url);
HttpsURLConnection connection = (HttpsURLConnection) siteURL
        .openConnection();
connection.setRequestMethod("GET");
connection.connect();
int code = connection.getResponseCode();
if (code == 200) {
    result = "Green";

当我执行上面的代码时,我得到了以下错误,

由以下原因引起:sun.security.validator.ValidatorException:PKIX路径生成失败:sun.scurity.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径在sun.security.validator.PKIXFalidator.doBuild(PKIXValidator.java:285)在sun.security.validator.PIXValidator.engineValidate(PKIXValidator.java:191)在sun.security.validator.validate(validator.java:218)网址:com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)网址:com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)网址:com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)网址:com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:954)

谁能给我一个解决方案吗。

这是因为SSL站点正在向您传递一个证书,而您的证书存储中没有该证书作为可信路径。添加它,或者忽略该站点,或者使用自定义套接字工厂来忽略该问题。

最新更新