`
wbj0110
  • 浏览: 1602685 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用HttpClient4模拟表单进行文件上传

 
阅读更多

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 模仿表单上传文件

    使用HttpClient进行文件上传,我们需要以下步骤: 1. **创建HttpClient对象**:初始化一个HttpClient实例,这将作为执行HTTP请求的基础。 2. **构建HttpPost请求**:使用HttpPost类创建一个新的POST请求,指定目标...

    (最新)HttpClient4模拟登录腾讯微博

    这篇最新的文章“HttpClient4模拟登录腾讯微博”探讨了如何利用HttpClient4实现对腾讯微博的模拟登录,这在自动化测试、数据抓取等场景中非常实用。 HttpClient4库提供了丰富的API,可以定制化地构造HTTP请求,包括...

    用HttpClient来模拟浏览器GET_POST

    通过使用HttpClient,可以轻松地解决以前很头疼的事情,例如处理COOKIE问题、上传文件等。 在使用HttpClient之前,我们需要了解为什么需要模拟浏览器GET_POST。通常情况下,我们都是使用IE或Navigator浏览器来访问...

    使用apache httpcomponents 模拟html表单上传文件

    总之,Apache HttpComponents是一个强大的HTTP客户端工具,能够帮助开发者模拟各种HTTP请求,包括HTML表单的文件上传。通过理解和应用上述步骤,你可以构建出可靠的文件上传功能,无论是在测试还是实际应用中。

    HttpClient模拟get,post请求并发送请求参数(json等)

    HttpClient还支持其他高级功能,如重试策略、Cookie管理、多部分表单数据上传等。在实际项目中,我们通常会封装一个HttpClientUtil工具类,以简化请求的创建和执行过程。 例如,一个简单的HttpClientUtil工具类可能...

    模拟表单post提交

    在使用HttpClient模拟表单POST提交时,首先需要创建一个HttpClient实例,这通常是通过HttpClientBuilder或者HttpClientFactory来完成的。然后,我们创建一个HttpGet或HttpPost对象,设置其目标URL。对于POST请求,...

    HttpClient介绍和使用文档

    在处理文件上传的问题上,HttpClient也提供了便捷的方法,使得开发者可以轻松地发送POST请求并附带文件数据。 以下是一个使用HttpClient简单读取网页内容的例子: ```java import java.io.IOException; import org...

    httpClient测试工具

    HttpClient还支持多部分文件上传,这对于测试涉及文件上传的接口非常有用。通过使用MultipartEntityBuilder,可以添加多个Part,每个Part可以是文件或普通数据。 在发送请求后,HttpClient会返回一个HttpResponse...

    HttpClient通过Post上传文件的实例代码

    在本文中,我们将探讨如何使用HttpClient通过POST方法上传文件。在实际应用中,当我们需要同时发送普通参数和文件到服务器时,HttpClient是一个理想的选择,因为它支持多部分请求,这是上传文件所必需的。 在HTTP中...

    Android实现表单上传文件

    在Android开发中,当涉及到与服务器进行数据交互,特别是上传文件时,如用户注册时上传头像,我们通常会遇到一个问题:内置的`HttpURLConnection`或`HttpClient`并不直接支持表单格式的文件上传。因此,我们需要采取...

    JAVA模拟http上传文件_代码男_新浪博客

    这个过程通常涉及到表单提交、Multipart/form-data编码、HttpClient或者HttpURLConnection类的使用。下面将详细探讨这些知识点。 1. **HTTP POST请求**:在HTTP协议中,文件上传通常使用POST方法,因为GET方法不...

    java代码模拟http上传文件_代码_类包

    以下是使用Apache HttpClient进行文件上传的一个基本步骤: 1. 引入依赖:在项目中添加Apache HttpClient库,如果使用Maven,可以在pom.xml中添加以下依赖: ```xml <groupId>org.apache.httpcomponents ...

    C#在WinForm下使用HttpWebRequest上传文件并显示进度

    在文件上传场景中,我们通常会使用POST方法来发送文件数据到服务器。下面是一个基本的步骤概述: 1. **创建HttpWebRequest对象**:通过`WebRequest.Create()`方法创建一个指向服务器URL的HttpWebRequest实例。 ```...

    java动态提交网站httpclient

    HTTPClient库允许我们创建GET、POST等请求,添加头信息,处理响应,甚至进行更复杂的操作,如表单提交和文件上传。 在Java中,Apache HttpClient库是最常用的HTTP客户端实现之一。要使用它,首先需要在项目中引入...

    .NET Core使用HttpClient进行表单提交时遇到的问题

    问题# 在开发微信支付的小微商户进件接口时,需要通过表单来上传身份证图片等数据。在微信支付接口文档也说明了,需要使用 ... {new ByteArrayContent(new byte[]{}/*模拟文件数据*/),"File,"FileName} } 按照微信支

    commons-httpClient 3.1 jar和src

    1. **HTTP方法支持**:HttpClient 3.1 支持GET、POST、PUT、DELETE等多种HTTP方法,可以设置请求头、发送表单数据、上传文件等。 2. **连接管理**:提供连接池功能,可以复用TCP连接,提高性能并减少网络延迟。 3. *...

    java处理文件上传的底层实现以及java模拟post协议实现文件上传

    这种编码方式可以是多部分/形式数据(Multipart/form-data),这是HTML表单文件上传的标准。 在Java中,处理文件上传的核心库是Apache Commons FileUpload和Servlet API。Apache Commons FileUpload是一个用于处理...

    httpCilent模拟客户端上传文件需要的jar

    本篇文章将深入讲解如何使用`httpclient`库实现文件上传,并介绍相关依赖库的作用。 首先,`httpclient`库本身并不包含所有功能,它需要与`httpcore`库配合使用。`httpcore`是`httpclient`的基础组件,提供了低级别...

    socket httpclient

    2. POST方法:POST方法用于向服务器提交数据,常用于表单提交或上传文件。数据通常包含在请求体中。构造POST请求时,需要在请求头中指定Content-Type和Content-Length,然后将数据写入Socket连接。例如,"POST /form...

Global site tag (gtag.js) - Google Analytics