package httpclient3test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HeaderElement; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.GetMethod; /** * @author yan * @date 2018-3-22 13:39:22 * @version V1.0 * @desc */ public class Httpclient3test { public static void main(String[] args) throws IOException { HttpClient httpClient = new HttpClient(); GetMethod getMethod = new GetMethod("http://android.myapp.com/android/down.jsp?appid=48157&lmid=2031&g_f=-1&actiondetail=0&softname=&downtype=1&enginekeywd=&topicid=-1&pkgid=-1"); int statusCode = httpClient.executeMethod(getMethod); System.out.println(statusCode); //获取response的返回头信息 Header contentHead = getMethod.getResponseHeader("Content-Disposition"); HeaderElement[] elements = contentHead.getElements(); String filename = null; for (HeaderElement el : elements) { //遍历,获取filename NameValuePair pair = el.getParameterByName("filename"); filename = pair.getValue(); if (null != filename) { break; } } System.out.println("filename:" + filename); InputStream is = getMethod.getResponseBodyAsStream(); inputStream2File(is, new File("G:\\tmp\\"+filename)); getMethod.releaseConnection(); } public static void inputStream2File(InputStream is, File file) { OutputStream os = null; try { os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = is.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } } catch (FileNotFoundException ex) { Logger.getLogger(Httpclient3test.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Httpclient3test.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if (null != os) { os.close(); } } catch (IOException ex) { Logger.getLogger(Httpclient3test.class.getName()).log(Level.SEVERE, null, ex); } finally { if (null != is) { try { is.close(); } catch (IOException ex) { Logger.getLogger(Httpclient3test.class.getName()).log(Level.SEVERE, null, ex); } } } } } }
依赖jar包
commons-codec-1.2.jar
commons-httpclient-3.1.jar
commons-logging-1.2.jar