JAVA通过访问页面中的URL实现Http文件下载到本地

 

如何通过访问某一个网页上的一个下载链接下载文件到本地呢?我学习了一下,利用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); }

转载


__EOF__

本文作者皮军旗
本文链接https://www.cnblogs.com/pijunqi/p/14468798.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   皮军旗  阅读(3118)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示