通过webService调用远程服务,返回了一个文件下载地址,现在需要从这个下载地址下载,我采用了servlet来实现。在网上发现了一个比较好的方法,现在和大家分享一下,如果有不完善的地方,还请多多指教。
需要用到的org.apache.commons.httpclient.jar 已上传。
一下就是我的代码:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
public class GetAllPolicyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpClient client = new HttpClient();
GetMethod get = null;
try {
//需要导入 org.apache.commons.httpclient.jar包 该文件需要另外下载
String path = "http://58.83.209.199:91/download/yeexing/201305090954476272020.zip";
get = new GetMethod(path);
int i = client.executeMethod(get);
if (200 == i) {
File storeFile = new File("d:/201305090954476272020.zip");
FileOutputStream output = new FileOutputStream(storeFile);
output.write(get.getResponseBody());
output.close();
} else {
System.out.println("no pic");
}
} catch (Exception e) {
System.out.println("no pic");
} finally {
get.releaseConnection();
client.getHttpConnectionManager().closeIdleConnections(0);
}
}
}