Ich möchte überwachen eine einfache URL. Aber wenn es ein https-Server ist, bekomme ich eine Handshake-Ausnahme. Es ist möglich, den Status einer https-URL zu überprüfen, so wie der Browser die Verbindung herstellt? (ohne ein lokales Zertifikat zu haben). Ich weiß nicht, wie Browser Inhalte von einer https-URL abrufen, aber ich möchte es auf die gleiche Weise machen. Ohne dass ein spezielles Zertifikat für jeden Server gespeichert werden muss. Das https überwacht werden sollte jeder sein.Überwachen Sie eine HTTPS-Verbindung mit URL-Klasse (Java)
try {
URL u = new URL(row.getUrl());
String protocol = u.getProtocol();
if(protocol.equals("https")) {
HttpsURLConnection hc = (HttpsURLConnection)u.openConnection();
System.out.println("Response Code: " + hc.getResponseCode());
hc.disconnect();
}
if(protocol.equals("http")) {
u.openConnection();
u.getContent();
}
System.out.println("url is up.");
} catch (Exception e) {
(...)
}
Ist das Zertifikat des Servers vertrauenswürdig? I.e. von einer CA signiert und nicht abgelaufen? Wenn nicht, dann müssen Sie vielleicht ein wenig Spaß machen, damit es richtig funktioniert. Das Akzeptieren selbstsignierter Zertifikate erfordert möglicherweise zusätzliche Arbeit. –
Nein, es sollte jeder Host sein, der die Verfügbarkeit testen möchte. –