package com.java24hours; import java.io.*; import java.net.*; import java.util.*; import java.net.http.*; public class ServerCheck { public ServerCheck() { String[] sites = { "https://www.apple.com/", "https://www.microsoft.com/", "https://www8.hp.com/", "https://www.oracle.com/", "https://www.informit.com/", "https://www.dell.com/" }; try { load(sites); } catch (URISyntaxException oops) { System.out.println("Bad URI: " + oops.getMessage()); } catch (IOException | InterruptedException oops) { System.out.println("Error: " + oops.getMessage()); } } public void load(String[] sites) throws URISyntaxException, IOException, InterruptedException { for (String site : sites) { System.out.println("\nSite: " + site); // create the web client HttpClient browser = HttpClient.newHttpClient(); // build a request for a website URI uri = new URI(site); HttpRequest.Builder bob = HttpRequest.newBuilder(uri); HttpRequest request = bob.build(); // execute the request HttpResponse response = browser.send(request, HttpResponse.BodyHandlers.ofString()); // look for a server header HttpHeaders headers = response.headers(); Optional server = headers.firstValue("Server"); if (server.isPresent()) { System.out.println("Server: " + server.get()); } else { System.out.println("Server unidentified"); } } } public static void main(String[] arguments) { new ServerCheck(); } }