X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FHttpUtils.java;fp=src%2Fjalview%2Futil%2FHttpUtils.java;h=5e27541a01a73e9496ace6eaa3495bd7f0f6fb23;hb=304e64fb34b32659be1bbfd39fb4e15b2f79586e;hp=5473f5adf624ed2287bb2f9c67bd766327e4ecc3;hpb=61ff8fb4efa315c35149c9d11850d99e3d00c441;p=jalview.git diff --git a/src/jalview/util/HttpUtils.java b/src/jalview/util/HttpUtils.java index 5473f5a..5e27541 100644 --- a/src/jalview/util/HttpUtils.java +++ b/src/jalview/util/HttpUtils.java @@ -20,6 +20,9 @@ */ package jalview.util; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; @@ -68,13 +71,11 @@ 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 @@ -101,4 +102,46 @@ public class HttpUtils return connection.getResponseCode() == 200; } + /** + * download from given URL and return a pointer to temporary file + */ + public static File fetchURLToTemp(String url) throws OutOfMemoryError, + IOException + { + long time = System.currentTimeMillis(); + URL rcall = new URL(url); + + InputStream is = new BufferedInputStream(rcall.openStream()); + File outFile = null; + try + { + outFile = File.createTempFile("jalview", ".xml"); + outFile.deleteOnExit(); + if (outFile.length() == 0) + { + outFile.delete(); + return null; + } + } catch (Exception ex) + { + } + + if (outFile != null) + { + FileOutputStream fio = new FileOutputStream(outFile); + byte[] bb = new byte[32 * 1024]; + int l; + while ((l = is.read(bb)) > 0) + { + fio.write(bb, 0, l); + } + fio.close(); + is.close(); + return outFile; + } + else + { + return null; + } + } }