package es.hol.media.plugin; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; /** * HttpRequest: Dumps to OutputStream */ public class HttpRequest { public static final String CONTENT_LENGTH = "Content-Length"; public static boolean dump(String url, RandomAccessFile out) throws Exception { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); HttpResponse response = httpClient.execute(httpGet); Integer statusCode = response.getStatusLine().getStatusCode(); Header contentLength = response.getFirstHeader(CONTENT_LENGTH); Long remoteFileSize = Long.valueOf(contentLength.getValue()); HttpEntity httpEntity = response.getEntity(); InputStream is = httpEntity.getContent(); Long localFileSize = 0L; try { int counter; byte[] buffer = new byte[1024]; while ((counter = is.read(buffer)) != -1) { out.write(buffer, 0, counter); } localFileSize = out.length(); } finally { close(out); close(is); } return statusCode == 200 && localFileSize.equals(remoteFileSize); } protected static void close(InputStream is) { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } protected static void close(RandomAccessFile out) { if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } }