今天在工作有一个需求需要使用后台模拟html表单上传文件,想到使用apache-httpcomponents来处理。主要使用的包有
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.2.5</version>
</dependency>
模拟content-type为multipart-form主要使用的类是MultipartEntity,该类能够很好的支持多文件的上传。简单实现代码如下:
private static MultipartEntity getMultipartEntity() {
String file1 = FileUploadHttpclient.class.getResource("sampleUploadFile1.txt").getFile();
String file2 = FileUploadHttpclient.class.getResource("sampleUploadFile2.txt").getFile();
MultipartEntity multipartEntity = new MultipartEntity();
//后台接收什么就添加什么
multipartEntity.addPart("text1", StringBody.create("this is httpclient"));
multipartEntity.addPart("file1", new FileBody(new File(file1)));
multipartEntity.addPart("file2", new FileBody(new File(file2)));
return multipartEntity;
}
然后再配上HttpPost 和 DefaulHttpClient 即可完成模拟表单的上传。
工程中不仅包含httpclient的上传,还包含页面表单的上传和后台用commons-fileupload实现的服务。
分享到:
相关推荐
以下是使用Apache HttpClient进行文件上传的一个基本步骤: 1. 引入依赖:在项目中添加Apache HttpClient库,如果使用Maven,可以在pom.xml中添加以下依赖: ```xml <groupId>org.apache.httpcomponents ...
HTMLUnit和Apache HttpComponents是两个在Java开发中广泛使用的库,它们主要专注于处理HTTP通信和网页解析。在本文中,我们将深入探讨这两个库的核心功能、使用场景以及它们如何协同工作。 **HTMLUnit** HTMLUnit...
在Java编程语言中,模拟POST提交表单是一项常见的任务,特别是在进行Web自动化测试、API接口测试或者构建网络爬虫时。HTTPComponents Client是Apache软件基金会提供的一个强大的HTTP客户端库,它使得开发者能够方便...
HTTPComponents是Apache软件基金会的一个核心项目,它提供了一组用于处理HTTP协议的Java库。在给定的“httpcomponents-client-4.5.5-bin.zip”压缩包中,包含了用于网络通信、网页抓取和页面转换的关键工具。这个...
<groupId>org.apache.httpcomponents <artifactId>httpclient <version>4.5.13 ``` 接下来,我们创建一个HttpClient实例,并设置必要的参数。这可能包括连接超时、读取超时等。例如: ```java import org....
Java 提供了多种模拟发送 Form-Data 的请求方式,下面将介绍其中的一种使用 Apache HttpComponents 库的方法。 首先,需要导入 Apache HttpComponents 库的相关依赖项,包括 `httpclient` 和 `httpmime`。 ```java...
此外,`httpcomponents-client-4.1-bin.zip`中的库文件包含了HttpClient的实现,可以将其添加到项目依赖中,以便使用其功能。 总结,Java模拟IE访问Web主要涉及到对HTTP协议的理解、HttpClient库的使用,以及请求和...
该接口接收前端上传的文件,通过构建一个`MultipartEntity`对象并将文件内容加入其中,然后使用`CloseableHttpClient`发送一个包含文件内容的POST请求到目标图床API。最后,根据返回的结果构建响应对象返回给前端。 ...
例如,使用`CookieStore`管理cookies,使用`RedirectStrategy`处理重定向,使用`MultipartEntityBuilder`处理文件上传等。 在实际开发中,建议使用HttpComponents Client的最新稳定版本,以获得最新的性能优化和...
<groupId>org.apache.httpcomponents <artifactId>httpclient <version>4.x.x</version> <!-- 使用最新的版本 --> ``` 2. **创建HttpClient实例**:初始化一个HttpClient对象,它是所有HTTP请求的基础。 ```...
`httpPost` 是一个代表HTTP POST请求的类,POST是HTTP协议中的一个方法,用于向服务器发送数据,常用于提交表单或者上传文件。通过`httpPost`,开发者可以设置请求头、添加请求参数,然后发送请求到指定URL。 `...
<groupId>org.apache.httpcomponents <artifactId>httpclient <version>4.x.x</version> <!-- 根据最新版本号替换 --> ``` 接下来,创建HttpClient实例,然后使用HttpPost对象来构建登录请求。登录请求的URL通常...
HttpClient还支持其他高级功能,如重试策略、Cookie管理、多部分表单数据上传等。在实际项目中,我们通常会封装一个HttpClientUtil工具类,以简化请求的创建和执行过程。 例如,一个简单的HttpClientUtil工具类可能...
接下来,我们将介绍如何使用Apache HttpClient库来模拟登录并保持session会话: 1. **导入依赖**: 首先,确保你的项目中已经引入了HttpClient库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml ...
此外,HttpClient可以与其他Apache Commons库,如HttpCore、HttpComponents等配合使用,实现更复杂的网络功能。 总之,HttpClient是Java中用于HTTP通信的强大工具,无论是在处理简单的HTTP GET/POST请求,还是应对...
4. Apache Commons IO:这个库提供了各种IO操作的工具类,对于处理文件输入输出,如保存爬取的数据到本地文件,非常有用。 5. Log4j:日志记录库,帮助调试和追踪爬虫的运行过程。 6. Scheduler库,如Quartz或...
例如,模拟表单提交: ```java HttpPost httpPost = new HttpPost("http://example.com/form"); List<NameValuePair> params = new ArrayList(); params.add(new BasicNameValuePair("key1", "value1")); params....
<groupId>org.apache.httpcomponents <artifactId>httpclient <version>4.5.13 ``` 接下来,我们开始编写Spider的代码。首先,需要创建一个HttpClient实例,然后构建HttpPost对象来指定目标URL。例如,如果我们...
<groupId>org.apache.httpcomponents <artifactId>httpclient <version>4.5.13 ``` 2. 创建HttpClient实例:通过`HttpClients.createDefault()`或自定义配置创建HttpClient对象。 3. 构建请求:使用`...