servlet httpClient 下载远程文件
通过webService调用远程服务,返回了一个文件下载地址,现在需要从这个下载地址下载,我采用了servlet来实现。在网上发现了一个比较好的方法,现在和大家分享一下,如果有不完善的地方,还请多多指教。
需要用到的org.apache.commons.httpclient.jar 已上传。
一下就是我的代码:
1 import java.io.File; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 import org.apache.commons.httpclient.HttpClient; 11 import org.apache.commons.httpclient.methods.GetMethod; 12 13 public class GetAllPolicyServlet extends HttpServlet { 14 15 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 16 doPost(request, response); 17 } 18 19 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 20 HttpClient client = new HttpClient(); 21 GetMethod get = null; 22 try { 23 //需要导入 org.apache.commons.httpclient.jar包 该文件需要另外下载 24 String path = "http://58.83.209.199:91/download/yeexing/201305090954476272020.zip"; 25 get = new GetMethod(path); 26 int i = client.executeMethod(get); 27 if (200 == i) { 28 File storeFile = new File("d:/201305090954476272020.zip"); 29 FileOutputStream output = new FileOutputStream(storeFile); 30 output.write(get.getResponseBody()); 31 output.close(); 32 } else { 33 System.out.println("no pic"); 34 } 35 } catch (Exception e) { 36 System.out.println("no pic"); 37 } finally { 38 get.releaseConnection(); 39 client.getHttpConnectionManager().closeIdleConnections(0); 40 } 41 } 42 43 }

浙公网安备 33010602011771号