博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA通过访问页面中的URL实现Http文件下载到本地
阅读量:7239 次
发布时间:2019-06-29

本文共 1846 字,大约阅读时间需要 6 分钟。

hot3.png

如何通过访问某一个网页上的一个下载链接下载文件到本地呢?我学习了一下,利用httpget1,httpResponse1来判断网络是否连接访问成功,又通过httpget2,httpResponse2来访问下载链接实现文件下载。

注意:在使用httpget2之前需使用语句“ httpget1.abort();”将get1关闭,否则会报异常。

/* 下载文件 @param urlsrc 网页地址  @param outPath 文件输出路径 */  @SuppressWarnings({ "resource" })  public static String DownLoadPages(String urlsrc, String outpath) throws UnknownHostException  {  	// 输入流   	InputStream in = null;  	// 文件输出流  	FileOutputStream out = null;  	try{   		HttpParams httpParams = new BasicHttpParams();  		HttpConnectionParams.setConnectionTimeout(httpParams,5000); //设置连接超时为5秒  		HttpClient client = new DefaultHttpClient(httpParams); // 生成一个http客户端发送请求对象  		HttpGet httpget1 = new HttpGet(urlsrc); //对查询页面get  		HttpResponse httpResponse1 = client.execute(httpget1); // 发送请求并等待响应  		// 判断网络连接是否成功  		System.out.println("状态码:"+httpResponse1.getStatusLine().getStatusCode());  		if (httpResponse1.getStatusLine().getStatusCode() != 200)  			System.out.println("网络错误异常!!!!");  		else  			System.out.println("网络连接成功!!!");  		httpget1.abort(); //关闭get  		HttpGet httpget2 = new HttpGet("http://....../download? DownloadFileName=All=true"); //对下载链接get实现下载  		HttpResponse httpResponse2 = client.execute(httpget2);  		HttpEntity entity = httpResponse2.getEntity(); // 获取响应里面的内容  		in = entity.getContent(); // 得到服务气端发回的响应的内容(都在一个流里面)  		out = new FileOutputStream(new File(outpath));   		byte[] b = new byte[1024];   		int len = 0;   		while((len=in.read(b))!= -1){   			out.write(b,0,len);   		}   		in.close();   		out.close();    		}catch(Exception e){    			e.printStackTrace();  		}  	}  	System.out.println("download, success!!");   }  public static void main(String[] args) throws Exception {  	String urlsrc="http://......//"; //要访问的链接  	String outPath="//...//..."; //本地路径  	DownLoadPages(src,outpath);  }

 

转载于:https://my.oschina.net/u/2619218/blog/643863

你可能感兴趣的文章
發行項帶篩選的合併複製問題之----訂閱者更新導致部份數據丟失
查看>>
Linux/Ubuntu sudo不用输入密码的方法
查看>>
Kinect for Windows 正式发布
查看>>
不适合做管理的人zz
查看>>
数据库索引
查看>>
控件:ScrollView --- 滚动视图
查看>>
Synthetic
查看>>
HDU-1203 I NEED A OFFER! 动态规划 01背包
查看>>
C# WinForm 多线程使用委托操作窗体控件
查看>>
如何批量清除128组节点db上面的过期的binlog,释放磁盘空间。
查看>>
系统反复自动注销的解决办法-第一次手刃病毒的过程
查看>>
中国现状,顺口溜
查看>>
ylb:使用sql语句实现添加、删除约束
查看>>
【RoR win32】提高rails new时bundle install运行速度
查看>>
固定滚动菜单
查看>>
CI 结合Bootstrap 分页
查看>>
windows 2008 怎么对外开放端口
查看>>
[cocos2d-x 3.0] 触摸显示器
查看>>
Linux 修改计算机名
查看>>
python --subprocess 范例
查看>>