是网上的例子, 用过就记录下来了
import java.io.File;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.ParseException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
/**
*
*
*/
public class UploadTest {
// file1与file2在同一个文件夹下 filepath是该文件夹指定的路径
public void SubmitPost(String url, String filename1, String filepath) {
HttpClient httpclient = new DefaultHttpClient();
try {
HttpPost httppost = new HttpPost(url);
FileBody bin = new FileBody(new File(filepath + File.separator + filename1));
StringBody comment = new StringBody("aaa");
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("file", bin);// file1为请求后台的File upload;属性
reqEntity.addPart("name", comment);// filename1为请求后台的普通参数;属性
httppost.setEntity(reqEntity);
// 后台以ajax方式处理
httppost.setHeader("X-Requested-With", "XMLHttpRequest");
HttpResponse response = httpclient.execute(httppost);
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("statusCode: " + statusCode);
if (statusCode == HttpStatus.SC_OK) {
System.out.println("服务器正常响应.....");
HttpEntity resEntity = response.getEntity();
System.out.println(EntityUtils.toString(resEntity));// httpclient自带的工具类读取返回数据
System.out.println(resEntity.getContent());
EntityUtils.consume(resEntity);
}
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
httpclient.getConnectionManager().shutdown();
} catch (Exception ignore) {
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
UploadTest httpPostArgumentTest2 = new UploadTest();
httpPostArgumentTest2.SubmitPost("http://localhost:8080/maintenance/repair-mans/importing/upload", "a.xls", "E:");
}
}
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.1.2</version>
</dependency>
分享到:
相关推荐
该工具类使用httpclient进行http or https请求,包括requestbody格式和form表单格式,另外含文件服务器中转上传方法,几乎支持所有常用接口调用,内含详细注释和说明文件,含jar包,及maven方式引用,拿过去直接用吧
综上所述,通过Java的HttpClient库,可以在Eclipse环境中编写程序,实现从指定URL下载文件到本地的功能。通过理解HttpClient的工作原理和提供的API,开发者可以构建出稳定、高效的文件下载解决方案。
综上所述,HTTPClient和RESTful风格的文件上传下载在Java分布式系统中具有广泛应用。通过HTTPClient实现HTTP请求,利用RESTful接口定义清晰的操作方式,可以构建高效、灵活的文件传输方案。同时,理解并遵循良好的...
总结起来,这些jar包共同构成了一个完整的Java HttpClient环境,能够处理各种复杂的HTTP通信任务,从简单的GET和POST请求到复杂的文件上传、多部分表单数据处理,以及与Web服务器的高级交互。开发者可以根据项目需求...
HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。
它提供了丰富的功能,包括文件上传和下载,支持请求流,以及处理JSON和XML数据。在本例中,我们关注的是HTTPClient 4版本,这是一个稳定且功能强大的版本,适用于多种网络交互场景。 文件上传通常涉及到HTTP的POST...
使用httpclient上传文件, CloseableHttpClient httpClient = HttpClientBuilder.create().build();
- 文件上传: ```java MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addBinaryBody("file", new File("path/to/file"), ContentType.DEFAULT_BINARY, "filename"); ...
### HttpClient 4 文件上传知识点详解 #### 一、概述 在Java开发中,经常会遇到需要通过HTTP协议上传文件的需求。Apache HttpClient是一个强大的客户端HTTP组件,它不仅支持HTTP协议,还能处理HTTPS请求,并提供了...
在这个场景中,我们主要关注如何使用HttpClient进行文件上传。 文件上传通常涉及到Web服务器与客户端之间的交互,比如用户通过网页上传图片或文档到服务器。HttpClient库提供了一个方便的接口来实现这种功能。以下...
以下是一个简单的文件上传示例: 1. 创建HttpClient对象: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. 定义HttpPost请求: ```java HttpPost httpPost = new HttpPost(...
HttpClient是Apache基金会开发的一个HTTP客户端库,主要用于在Java应用程序中执行...这些组件和类库是理解和实现HTTP文件上传的关键,对于任何需要与Web服务器交互的Java应用来说,HttpClient都是一个不可或缺的工具。
本文将详细介绍如何使用Java和HttpClient来模拟HTTPS文件上传,并跳过SSL验证。 首先,我们需要导入必要的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....
2. **MultipartEntityBuilder**:在HttpClient中,用于文件上传的关键类是`MultipartEntityBuilder`。它允许我们将文件作为多部分/form-data类型的数据发送,这是HTTP协议中用于上传文件的标准格式。 3. **文件上传...
在实际开发中,你还需要考虑错误处理和异常捕获,确保在文件上传过程中遇到问题时能够妥善处理。此外,如果SharePoint的访问控制较为严格,可能需要使用ADAL(Active Directory Authentication Library)来获取访问...
在Java编程中,Apache HttpClient库是一个非常常用的工具,用于...以上就是使用Apache HttpClient进行文件上传的基本流程和技术细节,以及相关的Servlet处理部分。在实际开发中,还需要根据具体需求进行调整和优化。
用httpcient上传文件,用httpclient上传文件
HttpClient是Apache基金会开发...总的来说,HttpClient是Java进行HTTP通信的强大工具,无论是简单的GET请求还是复杂的文件上传,都能轻松应对。通过理解其工作原理和使用方法,开发者能够高效地实现与Web服务器的交互。
总结起来,使用HTTPClient进行文件上传涉及创建POST请求、构建多部分实体、设置字符集,以及正确处理响应。乱码问题通常源于字符集不匹配,需在客户端和服务器端都进行适当的设置。理解这些知识点有助于在实际开发中...