/*
* Created on May 12, 2006
*/
package com.openedit.modules.update;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.net.URL;
import java.net.URLConnection;
import com.openedit.OpenEditException;
import com.openedit.util.FileUtils;
import com.openedit.util.OutputFiller;
public class Downloader
{
public void download(String inUrl, String inOutput) throws OpenEditException
{
download(inUrl,new File( inOutput));
}
public void download(String inStrUrl, File outputFile) throws OpenEditException
{
FileOutputStream out = null;
InputStream in = null;
try
{
URL url = new URL(inStrUrl);
URLConnection con = url.openConnection();
//this helps prevent 403 errors.
con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
con.setUseCaches(false);
con.connect();
//*** create new output file
//*** make a growable storage area to read into
outputFile.getParentFile().mkdirs();
out = new FileOutputStream(outputFile);
//*** read in url connection stream into input stream
in = con.getInputStream();
//*** fill output stream
new OutputFiller().fill(in,out);
}
catch ( Exception ex)
{
throw new OpenEditException(ex);
}
finally
{
//*** close output stream
FileUtils.safeClose(out);
//*** close input stream
FileUtils.safeClose(in);
}
}
public String downloadToString(String inUrl)
{
StringWriter out = null;
InputStream in = null;
try
{
URL url = new URL(inUrl);
URLConnection con = url.openConnection();
con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
con.setUseCaches(false);
con.connect();
//*** create new output file
//*** make a growable storage area to read into
out = new StringWriter();
//*** read in url connection stream into input stream
in = con.getInputStream();
//*** fill output stream
new OutputFiller().fill(new InputStreamReader(in),out);
return out.toString();
}
catch ( Exception ex)
{
throw new OpenEditException(ex);
}
finally
{
//*** close output stream
FileUtils.safeClose(out);
//*** close input stream
FileUtils.safeClose(in);
}
}
}