X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FHttpUtils.java;h=5438d4e0e39aeb738b3ff11f2c3d19afe892cf48;hb=HEAD;hp=74f77a2ca72bc3c77e7e73777adeddb1d778809d;hpb=9041085cce94f093479be520a8f3553de6e2381f;p=jalview.git diff --git a/src/jalview/util/HttpUtils.java b/src/jalview/util/HttpUtils.java index 74f77a2..5438d4e0 100644 --- a/src/jalview/util/HttpUtils.java +++ b/src/jalview/util/HttpUtils.java @@ -22,8 +22,14 @@ package jalview.util; import java.io.IOException; import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.ProtocolException; import java.net.URL; +import javax.ws.rs.HttpMethod; + +import jalview.bin.Cache; + public class HttpUtils { @@ -69,4 +75,73 @@ 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 + { + // jalview.bin.Console.outPrintln(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; + } + + public static String getUserAgent() + { + return getUserAgent(null); + } + + public static String getUserAgent(String className) + { + StringBuilder sb = new StringBuilder(); + sb.append("Jalview"); + sb.append('/'); + sb.append(Cache.getDefault("VERSION", "Unknown")); + sb.append(" ("); + sb.append(System.getProperty("os.name")); + sb.append("; "); + sb.append(System.getProperty("os.arch")); + sb.append(' '); + sb.append(System.getProperty("os.name")); + sb.append(' '); + sb.append(System.getProperty("os.version")); + sb.append("; "); + sb.append("java/"); + sb.append(System.getProperty("java.version")); + sb.append("; "); + sb.append("jalview/"); + sb.append(ChannelProperties.getProperty("channel")); + if (className != null) + { + sb.append("; "); + sb.append(className); + } + String installation = Cache.applicationProperties + .getProperty("INSTALLATION"); + if (installation != null) + { + sb.append("; "); + sb.append(installation); + } + sb.append(')'); + sb.append(" help@jalview.org"); + return sb.toString(); + } + }