`
泪雨的终结
  • 浏览: 5194 次
文章分类
社区版块
存档分类
最新评论

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

阅读更多
今天在工作有一个需求需要使用后台模拟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实现的服务。
分享到:
评论

相关推荐

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

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

    htmlunit和 httpcomponents

    HTMLUnit和Apache HttpComponents是两个在Java开发中广泛使用的库,它们主要专注于处理HTTP通信和网页解析。在本文中,我们将深入探讨这两个库的核心功能、使用场景以及它们如何协同工作。 **HTMLUnit** HTMLUnit...

    httpcomponents-client-4.0.1

    在Java编程语言中,模拟POST提交表单是一项常见的任务,特别是在进行Web自动化测试、API接口测试或者构建网络爬虫时。HTTPComponents Client是Apache软件基金会提供的一个强大的HTTP客户端库,它使得开发者能够方便...

    httpcomponents-client-4.5.5-bin.zip

    HTTPComponents是Apache软件基金会的一个核心项目,它提供了一组用于处理HTTP协议的Java库。在给定的“httpcomponents-client-4.5.5-bin.zip”压缩包中,包含了用于网络通信、网页抓取和页面转换的关键工具。这个...

    java httpclient 模拟登录

    &lt;groupId&gt;org.apache.httpcomponents &lt;artifactId&gt;httpclient &lt;version&gt;4.5.13 ``` 接下来,我们创建一个HttpClient实例,并设置必要的参数。这可能包括连接超时、读取超时等。例如: ```java import org....

    java模拟发送form-data的请求方式

    Java 提供了多种模拟发送 Form-Data 的请求方式,下面将介绍其中的一种使用 Apache HttpComponents 库的方法。 首先,需要导入 Apache HttpComponents 库的相关依赖项,包括 `httpclient` 和 `httpmime`。 ```java...

    java模拟ie 访问web

    此外,`httpcomponents-client-4.1-bin.zip`中的库文件包含了HttpClient的实现,可以将其添加到项目依赖中,以便使用其功能。 总结,Java模拟IE访问Web主要涉及到对HTTP协议的理解、HttpClient库的使用,以及请求和...

    接口开发、springboot、接口转发、前端直接调用图床API时我们发现会报错,编写一个后端接口进行代理即可解决,已实现的例子

    该接口接收前端上传的文件,通过构建一个`MultipartEntity`对象并将文件内容加入其中,然后使用`CloseableHttpClient`发送一个包含文件内容的POST请求到目标图床API。最后,根据返回的结果构建响应对象返回给前端。 ...

    java动态提交网站httpclient

    例如,使用`CookieStore`管理cookies,使用`RedirectStrategy`处理重定向,使用`MultipartEntityBuilder`处理文件上传等。 在实际开发中,建议使用HttpComponents Client的最新稳定版本,以获得最新的性能优化和...

    模拟登陆新浪微博

    &lt;groupId&gt;org.apache.httpcomponents &lt;artifactId&gt;httpclient &lt;version&gt;4.x.x&lt;/version&gt; &lt;!-- 使用最新的版本 --&gt; ``` 2. **创建HttpClient实例**:初始化一个HttpClient对象,它是所有HTTP请求的基础。 ```...

    HttpClients相关jar包

    `httpPost` 是一个代表HTTP POST请求的类,POST是HTTP协议中的一个方法,用于向服务器发送数据,常用于提交表单或者上传文件。通过`httpPost`,开发者可以设置请求头、添加请求参数,然后发送请求到指定URL。 `...

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

    &lt;groupId&gt;org.apache.httpcomponents &lt;artifactId&gt;httpclient &lt;version&gt;4.x.x&lt;/version&gt; &lt;!-- 根据最新版本号替换 --&gt; ``` 接下来,创建HttpClient实例,然后使用HttpPost对象来构建登录请求。登录请求的URL通常...

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

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

    httpclient如何保持session会话模拟登录后的操作

    接下来,我们将介绍如何使用Apache HttpClient库来模拟登录并保持session会话: 1. **导入依赖**: 首先,确保你的项目中已经引入了HttpClient库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml ...

    HttpClient介绍和使用文档

    此外,HttpClient可以与其他Apache Commons库,如HttpCore、HttpComponents等配合使用,实现更复杂的网络功能。 总之,HttpClient是Java中用于HTTP通信的强大工具,无论是在处理简单的HTTP GET/POST请求,还是应对...

    java爬虫所需要的包

    4. Apache Commons IO:这个库提供了各种IO操作的工具类,对于处理文件输入输出,如保存爬取的数据到本地文件,非常有用。 5. Log4j:日志记录库,帮助调试和追踪爬虫的运行过程。 6. Scheduler库,如Quartz或...

    HttpClient抓取网页Demo

    例如,模拟表单提交: ```java HttpPost httpPost = new HttpPost("http://example.com/form"); List&lt;NameValuePair&gt; params = new ArrayList(); params.add(new BasicNameValuePair("key1", "value1")); params....

    sprider实例

    &lt;groupId&gt;org.apache.httpcomponents &lt;artifactId&gt;httpclient &lt;version&gt;4.5.13 ``` 接下来,我们开始编写Spider的代码。首先,需要创建一个HttpClient实例,然后构建HttpPost对象来指定目标URL。例如,如果我们...

    httpclient http客户端

    &lt;groupId&gt;org.apache.httpcomponents &lt;artifactId&gt;httpclient &lt;version&gt;4.5.13 ``` 2. 创建HttpClient实例:通过`HttpClients.createDefault()`或自定义配置创建HttpClient对象。 3. 构建请求:使用`...

Global site tag (gtag.js) - Google Analytics