java - How to download file from http URL -


this servlet code download file. download local file want download file http url :
("http://www.java2s.com/code/jardownload/sqljdbc4/sqljdbc4-3.0.jar.zip").

package net.codejava;   import java.io.file;  import java.io.fileinputstream;  import java.io.ioexception;  import java.io.outputstream;    import javax.servlet.servletcontext;   import javax.servlet.servletexception;   import javax.servlet.http.httpservlet;   import javax.servlet.http.httpservletrequest;   import javax.servlet.http.httpservletresponse;    public class downloadfileservlet extends httpservlet {     protected void doget(httpservletrequest request,         httpservletresponse response) throws servletexception, ioexception {     // reads input file absolute path     string filepath = "e:/test/download/mypic.jpg";     file downloadfile = new file(filepath);     fileinputstream instream = new fileinputstream(downloadfile);      // if want use relative path context root:     string relativepath = getservletcontext().getrealpath("");     system.out.println("relativepath = " + relativepath);      // obtains servletcontext     servletcontext context = getservletcontext();      // gets mime type of file     string mimetype = context.getmimetype(filepath);     if (mimetype == null) {                  // set binary type if mime mapping not found         mimetype = "application/octet-stream";     }     system.out.println("mime type: " + mimetype);      // modifies response     response.setcontenttype(mimetype);     response.setcontentlength((int) downloadfile.length());      // forces download     string headerkey = "content-disposition";     string headervalue = string.format("attachment;        filename=\"%s"",downloadfile.getname());     response.setheader(headerkey, headervalue);      // obtains response's output stream     outputstream outstream = response.getoutputstream();      byte[] buffer = new byte[4096];     int bytesread = -1;      while ((bytesread = instream.read(buffer)) != -1) {         outstream.write(buffer, 0, bytesread);     }      instream.close();     outstream.close();              }     } 

first make sure firewall not blocking application. can use fileutils class in apache download url file.

fileutils.copyurltofile(your_url, file);