`

HttpClient 4 实现文件下载

阅读更多
如果大家对WEB研发有兴趣
可以加入Q群:46176507 共同进步学习
有时需要通过httpclient进行文件下载,下面是文件下载的实现过程
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

public class SearchDomain {

	public static void main(String[] args) throws ClientProtocolException, IOException {
		//实例化一个HttpClient
		HttpClient httpClient = new DefaultHttpClient();
		//设定目标站点  web的默认端口80可以不写的 当然如果是其它端口就要标明                                                           
		HttpHost httpHost = new HttpHost("www.shanhe114.com",80);
		//设置需要下载的文件
		HttpGet httpGet = new HttpGet("/test.zip");
		//这里也可以直接使用httpGet的绝对地址,当然如果不是具体地址不要忘记/结尾
		//HttpGet httpGet = new HttpGet("http://www.0431.la/");
		//HttpResponse response = httpClient.execute(httpGet);
		
		HttpResponse response = httpClient.execute(httpHost, httpGet);
		if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){
			//请求成功
			//取得请求内容
			HttpEntity entity = response.getEntity();
			
			//显示内容
			if (entity != null) {
				//这里可以得到文件的类型 如image/jpg /zip /tiff 等等 但是发现并不是十分有效,有时明明后缀是.rar但是取到的是null,这点特别说明
				System.out.println(entity.getContentType());
				//可以判断是否是文件数据流
				System.out.println(entity.isStreaming());
				//设置本地保存的文件
				File storeFile = new File("c:/0431la.zip");  
				FileOutputStream output = new FileOutputStream(storeFile);
				//得到网络资源并写入文件
				InputStream input = entity.getContent();
				byte b[] = new byte[1024];
				int j = 0;
				while( (j = input.read(b))!=-1){
					output.write(b,0,j);
				}
				output.flush();
				output.close(); 
			}
			if (entity != null) {
				entity.consumeContent();
			}
		}
	}
}


需要说明这里我并没验证文件的类型,实际操作中可以通过url的后缀提取 或者ContentType的类型
分享到:
评论

相关推荐

    HttpClient实现文件下载

    ### HttpClient 实现文件下载 #### 一、简介与原理 在Java开发中,经常会遇到需要通过HTTP协议来获取网络资源的需求,例如从Web服务器下载文件。Apache HttpClient 是一个用于发送HTTP请求的Java类库,它提供了...

    HttpClient实现POST GET和文件下载

    HttpClient提供了一种便捷的方式来下载文件: 1. **创建HttpGet请求**:指定要下载文件的URL。 2. **执行请求**:发送请求并获取`HttpResponse`。 3. **准备输出流**:创建一个本地文件,并用`FileOutputStream`...

    HttpClient 4 - 文件上传

    在这个主题中,我们将深入探讨HttpClient 4如何实现文件上传,以及相关的核心概念和技术。 首先,我们需要了解HttpClient 4的基本用法。HttpClient 4依赖于几个关键的组件,包括`httpclient-4.0.jar`(核心客户端库...

    httpclient.jar包下载

    提到code.jar包,这通常是指包含代码实现的库文件,可能包含了HttpClient的额外功能或者特定项目中的自定义代码。在某些情况下,code.jar可能是项目依赖的其他组件,与httpclient.jar一起使用以完成更复杂的任务。...

    java使用HttpClient通过url下载文件到本地

    综上所述,通过Java的HttpClient库,可以在Eclipse环境中编写程序,实现从指定URL下载文件到本地的功能。通过理解HttpClient的工作原理和提供的API,开发者可以构建出稳定、高效的文件下载解决方案。

    httpclient多线程下载(分段下载)实践

    在IT行业中,网络编程是不可或缺的一...通过合理的设计和实现,可以显著提升大文件下载的速度和用户体验。在实际编码中,开发者需要关注线程安全、错误处理、进度监控和资源管理等多个方面,以确保系统的稳定性和性能。

    httpClient4 最新帮助文档

    - HttpClient 4支持异步操作,使用`HttpAsyncClient`,可以实现非阻塞的请求/响应处理。 - 异步请求的回调可以通过`Future<HttpResponse>`和` HttpContext`来处理。 6. **重试策略和异常处理**: - 可以配置重试...

    HttpClient 4文件上传

    本文档将详细介绍如何使用HttpClient 4.x版本实现文件上传功能。 #### 二、核心类与接口介绍 1. **HttpClient**: - `HttpClient`是Apache HttpClient提供的核心接口,用于执行HTTP请求并获取响应。 - 在本例中...

    httpclient.jar 文件下载

    httpclient.jar文件包含了HttpClient的所有核心类和方法,使得开发者可以便捷地集成到自己的Java应用中。 二、主要功能与API 1. HTTP请求:HttpClient允许开发者创建各种类型的HTTP请求,如GET、POST、PUT、DELETE...

    httpclient和RestfuL风格上传下载文件

    在Java开发中,HTTPClient和RESTful风格的接口被广泛用于实现文件的上传与下载功能。HTTPClient是一个强大的HTTP客户端库,而RESTful是一种轻量级的、基于HTTP协议的软件架构风格,常用于构建Web服务。在分布式系统...

    Android使用HttpClient实现上传下载功能并监控进度

    本教程将详细介绍如何利用HttpClient实现文件的上传与下载,并且实时监控进度,以便在UI上显示进度条。 首先,理解HttpClient的基本用法是至关重要的。HttpClient是Apache的一个组件,它提供了丰富的API来构建网络...

    通过 HttpClient 下载 文件

    本主题将深入探讨如何利用HttpClient实现文件的下载功能,同时也会涉及相关的源码解析和辅助工具的使用。 首先,HttpClient是一个Java库,它允许开发者以一种与HTTP协议兼容的方式发送请求并接收响应。它提供了丰富...

    httpclient.jar包下载.zip

    在Java环境中,`httpclient.jar`是HttpClient库的二进制文件,通常通过Maven或Gradle等构建工具作为依赖引入项目。将`httpclient.jar`下载并添加到项目类路径中,即可使用HttpClient的功能。 总的来说,HttpClient...

    org.apache.commons.httpclient 远程下载文件

    在本篇讨论中,我们将深入理解如何使用HttpClient来实现远程文件下载。 首先,我们需要导入必要的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>commons-httpclient ...

    httpclient 文件上传 下载

    文件下载通常通过GET请求实现,HTTPClient 4中的`HttpGet`类就是为此设计的。你可以创建一个`HttpGet`实例,指定文件的URL,然后使用`HttpClient.execute()`方法发送请求。为了保存下载的文件,你可以创建一个`...

    https+spring3+httpclient4多文件上传

    标题 "HTTPS + Spring3 + HttpClient4 多文件上传" 涉及到的是在Java环境中,使用Spring3框架和Apache HttpClient4库实现通过HTTPS协议上传多个文件的技术。这个主题涵盖了几大关键知识点,包括HTTPS安全通信、...

    httpclient4

    - **文件上传下载**:通过POST或PUT请求,HttpClient 可以实现文件的上传,通过GET请求实现文件的下载。 - **模拟登录**:HttpClient 支持多种身份验证机制,可以用来模拟用户登录网站。 5. **最佳实践** - **...

    Arduino HttpClient 库文件

    `HttpClient.cpp` 文件是实现文件,它实现了 `HttpClient.h` 中声明的类和函数。在这里,你可以找到实际执行 HTTP 请求的代码,如建立 TCP 连接、发送数据、接收响应等低级网络操作。这些功能通常是基于 Arduino 的 ...

Global site tag (gtag.js) - Google Analytics