1.maven依赖
?????<dependency> ???????<groupId>org.apache.httpcomponents</groupId> ???????<artifactId>httpclient</artifactId> ???????<version>4.5.2</version> ???</dependency> ???????<dependency> ???????<groupId>org.apache.httpcomponents</groupId> ???????<artifactId>httpmime</artifactId> ???????<version>4.5.2</version> ???</dependency>
2.代码实现
import java.io.File;import java.io.IOException;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.mime.MultipartEntityBuilder;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;public class HttpClientUpload { ???public static void main(String[] args) { ???????// 将 fileUrl 上传到 url中,上传成功后,返回 下载地址 ???????String url = "http://127.0.0.1:8080/Joe/upload"; ???????String fileUrl = "C:/abc.txt"; ???????try { ???????????System.out.println(post(url, "file", new File(fileUrl))); ???????} catch (Exception e) { ???????????e.printStackTrace(); ???????} ???} ???/** ????* post:(上传). ????* ?????* @author Joe Date:2017年9月11日下午5:37:46 ????* @param serverUrl ????* @param fileParamName ????* @param file ????* @return ????* @throws ClientProtocolException ????* @throws IOException ????*/ ???public static String post(String serverUrl, String fileParamName, File file) ???????????throws ClientProtocolException, IOException { ???????HttpPost httpPost = new HttpPost(serverUrl); ???????MultipartEntityBuilder builder = MultipartEntityBuilder.create(); ???????// 上传的文件 ???????builder.addBinaryBody(fileParamName, file); ???????HttpEntity httpEntity = builder.build(); ???????httpPost.setEntity(httpEntity); ???????// 请求获取数据的超时时间 、 设置从connect ???????// Manager获取Connection超时时间(因为目前版本是可以共享连接池的)、设置连接超时时间 ???????RequestConfig requestConfig = RequestConfig.custom() ???????????????.setSocketTimeout(10000).setConnectionRequestTimeout(3000) ???????????????.setConnectTimeout(10000).build(); ???????httpPost.setConfig(requestConfig); ???????HttpClient httpClient = HttpClients.createDefault(); ???????HttpResponse response = httpClient.execute(httpPost); ???????return EntityUtils.toString(response.getEntity()); ???}}
HttpClient(五)-- 模拟表单上传文件
原文地址:http://www.cnblogs.com/xbq8080/p/7536364.html