1.使用AddPart
File file = new File(textFileName, ContentType.DEFAULT_BINARY); HttpPost post = new HttpPost("http://echo.200please.com"); FileBody fileBody = new FileBody(file); StringBody stringBody1 = new StringBody("Message 1", ContentType.MULTIPART_FORM_DATA); StringBody stringBody2 = new StringBody("Message 2", ContentType.MULTIPART_FORM_DATA); // MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); builder.addPart("upfile", fileBody); builder.addPart("text1", stringBody1); builder.addPart("text2", stringBody2); HttpEntity entity = builder.build(); // post.setEntity(entity); HttpResponse response = client.execute(post);
2.使用addBinaryBody and addTextBody
Ht1
2
3tpPost post = new HttpPost("http://echo.200please.com");
File file = new File(textFileName); String message = "This is a multipart post"; MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); builder.addBinaryBody("upfile", file, ContentType.DEFAULT_BINARY, textFileName); builder.addTextBody("text", message, ContentType.DEFAULT_BINARY); // HttpEntity entity = builder.build(); post.setEntity(entity); HttpResponse response = client.execute(post);
HttpPost post = new HttpPost("http://echo.200please.com");
InputStream inputStream = new FileInputStream(zipFileName);
File file = new File(imageFileName);
String message = "This is a multipart post";
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.addBinaryBody
("upfile", file, ContentType.DEFAULT_BINARY, imageFileName);
builder.addBinaryBody
("upstream", inputStream, ContentType.create("application/zip"), zipFileName);
builder.addTextBody("text", message, ContentType.TEXT_PLAIN);
//
HttpEntity entity = builder.build();
post.setEntity(entity);
HttpResponse response = client.execute(post);
上传byte数组
HttpPost post = new HttpPost("http://echo.200please.com"); String message = "This is a multipart post"; byte[] bytes = "binary code".getBytes(); // MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); builder.addBinaryBody("upfile", bytes, ContentType.DEFAULT_BINARY, textFileName); builder.addTextBody("text", message, ContentType.TEXT_PLAIN); // HttpEntity entity = builder.build(); post.setEntity(entity); HttpResponse response = client.execute(post);
http://www.baeldung.com/httpclient-multipart-upload
相关推荐
使用HttpClient进行文件上传,我们需要以下步骤: 1. **创建HttpClient对象**:初始化一个HttpClient实例,这将作为执行HTTP请求的基础。 2. **构建HttpPost请求**:使用HttpPost类创建一个新的POST请求,指定目标...
这篇最新的文章“HttpClient4模拟登录腾讯微博”探讨了如何利用HttpClient4实现对腾讯微博的模拟登录,这在自动化测试、数据抓取等场景中非常实用。 HttpClient4库提供了丰富的API,可以定制化地构造HTTP请求,包括...
通过使用HttpClient,可以轻松地解决以前很头疼的事情,例如处理COOKIE问题、上传文件等。 在使用HttpClient之前,我们需要了解为什么需要模拟浏览器GET_POST。通常情况下,我们都是使用IE或Navigator浏览器来访问...
总之,Apache HttpComponents是一个强大的HTTP客户端工具,能够帮助开发者模拟各种HTTP请求,包括HTML表单的文件上传。通过理解和应用上述步骤,你可以构建出可靠的文件上传功能,无论是在测试还是实际应用中。
HttpClient还支持其他高级功能,如重试策略、Cookie管理、多部分表单数据上传等。在实际项目中,我们通常会封装一个HttpClientUtil工具类,以简化请求的创建和执行过程。 例如,一个简单的HttpClientUtil工具类可能...
在使用HttpClient模拟表单POST提交时,首先需要创建一个HttpClient实例,这通常是通过HttpClientBuilder或者HttpClientFactory来完成的。然后,我们创建一个HttpGet或HttpPost对象,设置其目标URL。对于POST请求,...
在处理文件上传的问题上,HttpClient也提供了便捷的方法,使得开发者可以轻松地发送POST请求并附带文件数据。 以下是一个使用HttpClient简单读取网页内容的例子: ```java import java.io.IOException; import org...
HttpClient还支持多部分文件上传,这对于测试涉及文件上传的接口非常有用。通过使用MultipartEntityBuilder,可以添加多个Part,每个Part可以是文件或普通数据。 在发送请求后,HttpClient会返回一个HttpResponse...
在本文中,我们将探讨如何使用HttpClient通过POST方法上传文件。在实际应用中,当我们需要同时发送普通参数和文件到服务器时,HttpClient是一个理想的选择,因为它支持多部分请求,这是上传文件所必需的。 在HTTP中...
在Android开发中,当涉及到与服务器进行数据交互,特别是上传文件时,如用户注册时上传头像,我们通常会遇到一个问题:内置的`HttpURLConnection`或`HttpClient`并不直接支持表单格式的文件上传。因此,我们需要采取...
这个过程通常涉及到表单提交、Multipart/form-data编码、HttpClient或者HttpURLConnection类的使用。下面将详细探讨这些知识点。 1. **HTTP POST请求**:在HTTP协议中,文件上传通常使用POST方法,因为GET方法不...
以下是使用Apache HttpClient进行文件上传的一个基本步骤: 1. 引入依赖:在项目中添加Apache HttpClient库,如果使用Maven,可以在pom.xml中添加以下依赖: ```xml <groupId>org.apache.httpcomponents ...
在文件上传场景中,我们通常会使用POST方法来发送文件数据到服务器。下面是一个基本的步骤概述: 1. **创建HttpWebRequest对象**:通过`WebRequest.Create()`方法创建一个指向服务器URL的HttpWebRequest实例。 ```...
HTTPClient库允许我们创建GET、POST等请求,添加头信息,处理响应,甚至进行更复杂的操作,如表单提交和文件上传。 在Java中,Apache HttpClient库是最常用的HTTP客户端实现之一。要使用它,首先需要在项目中引入...
问题# 在开发微信支付的小微商户进件接口时,需要通过表单来上传身份证图片等数据。在微信支付接口文档也说明了,需要使用 ... {new ByteArrayContent(new byte[]{}/*模拟文件数据*/),"File,"FileName} } 按照微信支
1. **HTTP方法支持**:HttpClient 3.1 支持GET、POST、PUT、DELETE等多种HTTP方法,可以设置请求头、发送表单数据、上传文件等。 2. **连接管理**:提供连接池功能,可以复用TCP连接,提高性能并减少网络延迟。 3. *...
这种编码方式可以是多部分/形式数据(Multipart/form-data),这是HTML表单文件上传的标准。 在Java中,处理文件上传的核心库是Apache Commons FileUpload和Servlet API。Apache Commons FileUpload是一个用于处理...
本篇文章将深入讲解如何使用`httpclient`库实现文件上传,并介绍相关依赖库的作用。 首先,`httpclient`库本身并不包含所有功能,它需要与`httpcore`库配合使用。`httpcore`是`httpclient`的基础组件,提供了低级别...
2. POST方法:POST方法用于向服务器提交数据,常用于表单提交或上传文件。数据通常包含在请求体中。构造POST请求时,需要在请求头中指定Content-Type和Content-Length,然后将数据写入Socket连接。例如,"POST /form...