JAL-3739 (combined) commits from feature/JAL-3739_useFormFieldText
[jalview.git] / src / jalview / util / HttpUtils.java
index 991a20a..5473f5a 100644 (file)
@@ -1,4 +1,4 @@
-/*******************************************************************************
+/*
  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
  * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * You should have received a copy of the GNU General Public License
  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
  * The Jalview Authors are detailed in the 'AUTHORS' file.
- ******************************************************************************/
+ */
 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
 {
@@ -64,4 +69,36 @@ public class HttpUtils
     return false;
   }
 
+  public static boolean startsWithHttpOrHttps(String file)
+  {
+    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;
+  }
+
 }