package org.gcube.data.transfer.library.utils; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import java.util.UUID; public class Utils { /** * Pings a HTTP URL. This effectively sends a HEAD request and returns true if the response code is in * the 200-399 range. * @param url The HTTP URL to be pinged. * @param timeout The timeout in millis for both the connection timeout and the response read timeout. Note that * the total timeout is effectively two times the given timeout. * @return true if the given HTTP URL has returned response code 200-399 on a HEAD request within the * given timeout, otherwise false. */ public static boolean pingURL(String url, int timeout) { // url = url.replaceFirst("^https", "http"); // Otherwise an exception may be thrown on invalid SSL certificates. try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout); connection.setRequestMethod("HEAD"); int responseCode = connection.getResponseCode(); return (200 <= responseCode && responseCode <= 399); } catch (IOException exception) { return false; } } public static final String getUniqueString(){ return UUID.randomUUID().toString(); } }