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 }

 

posted @ 2013-05-09 22:18  junluo  阅读(987)  评论(0)    收藏  举报