1、上传过程
2、上传结果
3、上传的核心代码
//httpClient4使用http-mime.jar包的MultipartEntity实现,
public static String postFile(File file,String url) throws Exception {
FileBody bin = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
if(file != null) {
bin = new FileBody(file);
}
StringBody desc = new StringBody("this is a haproxy config file");
//请记住,这边传递汉字会出现乱码,解决方法如下,设置好编码格式就好
//new StringBody("汉字",Charset.forName("UTF-8")));
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("email", desc);
reqEntity.addPart("file1", bin);
httppost.setEntity(reqEntity);
System.out.println("执行: " + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost);
System.out.println("statusCode is " + response.getStatusLine().getStatusCode());
HttpEntity resEntity = response.getEntity();
System.out.println("-------------------------");
System.out.println(response.getStatusLine());
if (resEntity != null) {
System.out.println("返回长度: " + resEntity.getContentLength());
System.out.println("返回类型: " + resEntity.getContentType());
InputStream in = resEntity.getContent();
System.out.println("in is " + in);
System.out.println(getStrFromInputSteam(in));
}
if (resEntity != null) {
resEntity.consumeContent();
}
return null;
}
public static InputStream getInputStreamFromString(String str){
InputStream in=new ByteArrayInputStream(str.getBytes());
return in;
}
public static String getStrFromInputSteam(InputStream in) throws Exception{
BufferedReader bf=new BufferedReader(new InputStreamReader(in,"UTF-8"));
//最好在将字节流转换为字符流的时候 进行转码
StringBuffer buffer=new StringBuffer();
String line="";
while((line=bf.readLine())!=null){
buffer.append(line);
}
return buffer.toString();
}
相关推荐
HttpClient模拟客户端传输文件是Java开发中的常见需求,尤其在与服务器进行交互时,例如上传用户数据、图片或者其他文件。在这个过程中,我们通常会使用POST请求将文件作为请求体发送到服务器。 首先,我们需要引入...
HttpClient4是中国开源软件社区Apache下的一个HTTP客户端编程工具包,主要用来进行HTTP协议通信,它为Java开发者提供了在Java环境中发送HTTP请求并处理响应的强大功能。这篇最新的文章“HttpClient4模拟登录腾讯微博...
- **文件上传下载**:通过POST或PUT请求,HttpClient 可以实现文件的上传,通过GET请求实现文件的下载。 - **模拟登录**:HttpClient 支持多种身份验证机制,可以用来模拟用户登录网站。 5. **最佳实践** - **...
当我们需要实现文件上传功能时,可以通过模拟HTTP请求来完成。这个过程通常涉及到表单提交、Multipart/form-data编码、HttpClient或者HttpURLConnection类的使用。下面将详细探讨这些知识点。 1. **HTTP POST请求**...
Struts2、Android和HttpClient是三个关键的技术领域,它们在本次文件上传的场景中相互结合。Struts2是一个流行的Java Web框架,用于构建MVC(模型-视图-控制器)结构的应用程序。Android是Google开发的移动操作系统...
本篇将详细探讨Java处理文件上传的底层实现,以及如何使用Java模拟POST协议来实现文件上传。 首先,我们需要理解文件上传的基本原理。在HTTP协议中,文件上传通常通过POST请求进行。当用户在表单中选择文件并提交时...
在Java编程语言中,HTTP(超文本传输协议)被广泛用于客户端与服务器之间的通信,包括文件上传功能。本文将深入探讨如何使用Java实现HTTP文件上传,同时基于提供的压缩包资源,我们将详细介绍相关代码和类库。 首先...
7. 能够处理文件上传和下载。 8. 支持 HTTPS(SSL/TLS)安全通信。 ### HttpClient 基本功能的使用 #### 环境准备 在使用 HttpClient 之前,需要在项目中引入 HttpClient 的依赖库,通常是 Apache HttpClient 的 ...
HttpClient还支持多部分文件上传,这对于测试涉及文件上传的接口非常有用。通过使用MultipartEntityBuilder,可以添加多个Part,每个Part可以是文件或普通数据。 在发送请求后,HttpClient会返回一个HttpResponse...
本篇文章将深入讲解如何使用`httpclient`库实现文件上传,并介绍相关依赖库的作用。 首先,`httpclient`库本身并不包含所有功能,它需要与`httpcore`库配合使用。`httpcore`是`httpclient`的基础组件,提供了低级别...
- **文件上传**:实现通过HTTP协议的文件上传功能。 #### 六、总结 通过以上介绍可以看出,HttpClient为开发者提供了强大的功能和灵活性,特别是在处理复杂的HTTP请求和响应方面表现突出。无论是进行简单的网页...
- 文件下载/上传:通过 POST 或 GET 方式进行大文件传输。 - 爬虫开发:爬取网页数据,进行数据分析。 - 自动化测试:模拟用户行为,测试 Web 应用功能。 总结,HttpClient 4.0 作为 Java 中的网络通信库,其强大的...
HTTPClient库允许我们创建GET、POST等请求,添加头信息,处理响应,甚至进行更复杂的操作,如表单提交和文件上传。 在Java中,Apache HttpClient库是最常用的HTTP客户端实现之一。要使用它,首先需要在项目中引入...
虽然标题中没有明确提到HTTPClient,但通常在实现文件上传时,我们可能需要使用HTTP客户端库(如Apache HttpClient)来模拟客户端发送文件上传请求。HttpClient允许你构建复杂的HTTP请求,包括POST请求携带文件。...
- `httpmime.jar`:用于处理MIME类型,如在POST请求中上传文件。 6. **导入到IDE**:在描述中提到的"导入myeclipse即可使用",指的是将这三个jar包添加到MyEclipse项目的类路径中,这样项目就能识别并使用...
- 文件上传下载:HttpClient支持PUT和GET方法,适合处理大文件的上传和下载。 - 自动化测试:在编写自动化测试脚本时,HttpClient可以帮助模拟真实用户行为。 6. 最佳实践: - 使用连接池:通过设置合适的连接池...
2. POST方法:POST方法用于向服务器提交数据,常用于表单提交或上传文件。数据通常包含在请求体中。构造POST请求时,需要在请求头中指定Content-Type和Content-Length,然后将数据写入Socket连接。例如,"POST /form...
1. **HTTP方法支持**:HttpClient 3.1 支持GET、POST、PUT、DELETE等多种HTTP方法,可以设置请求头、发送表单数据、上传文件等。 2. **连接管理**:提供连接池功能,可以复用TCP连接,提高性能并减少网络延迟。 3. *...
- 支持文件上传和下载 - 可配置的重试策略和连接超时 2. **核心概念** - **HttpClient实例**:HttpClient对象是执行HTTP请求的主体,负责管理连接、执行请求和解析响应。 - **HttpRequestBase**:所有HTTP请求...
3. `httpmime.jar`: 提供对HTTP多部分/表单数据的支持,用于上传文件或处理复杂请求体。 4. `httpasyncclient.jar`(可选): 如果需要异步处理HTTP请求,此库提供了非阻塞I/O的接口。 5. `httpcore-nio.jar`(可选)...