From 5b9070df0962684467dbce0535559ebf050c7b63 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Tue, 27 Jul 2021 13:33:31 +0100 Subject: [PATCH] JAL-3855 convenience method to check a URL will return a 200 --- src/jalview/util/HttpUtils.java | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/jalview/util/HttpUtils.java b/src/jalview/util/HttpUtils.java index 74f77a2..5473f5a 100644 --- a/src/jalview/util/HttpUtils.java +++ b/src/jalview/util/HttpUtils.java @@ -22,7 +22,12 @@ package jalview.util; import java.io.IOException; import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.ProtocolException; import java.net.URL; +import java.util.List; + +import javax.ws.rs.HttpMethod; public class HttpUtils { @@ -68,5 +73,32 @@ public class HttpUtils { return file.startsWith("http://") || file.startsWith("https://"); } + + + /** + * wrapper to get/post to a URL or check headers + * @param url + * @param ids + * @param readTimeout + * @return + * @throws IOException + * @throws ProtocolException + */ + public static boolean checkUrlAvailable(URL url, + int readTimeout) throws IOException, ProtocolException + { + // System.out.println(System.currentTimeMillis() + " " + url); + + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + connection.setRequestMethod(HttpMethod.HEAD); + + connection.setDoInput(true); + + connection.setUseCaches(false); + connection.setConnectTimeout(300); + connection.setReadTimeout(readTimeout); + return connection.getResponseCode() == 200; + } } -- 1.7.10.2