1、引入jar包
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.8</version>
</dependency>
2、客户端
public void upload(String localFile){
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
try {
httpClient = HttpClients.createDefault();
// 把一个普通参数和文件上传给下面这个地址 是一个servlet
HttpPost httpPost = new HttpPost("http://127.0.0.1:8080/processUpload");
// 把文件转换成流对象FileBody
FileBody bin = new FileBody(new File(localFile));
StringBody userName = new StringBody("Scott", ContentType.create(
"text/plain", Consts.UTF_8));
StringBody password = new StringBody("123456", ContentType.create(
"text/plain", Consts.UTF_8));
HttpEntity reqEntity = MultipartEntityBuilder.create()
// 相当于<input type="file" name="file"/>
.addPart("file", bin)
// 相当于<input type="text" name="userName" value=userName>
.addPart("userName", userName)
.addPart("pass", password)
.addPart("memberId",password)
.build();
httpPost.setEntity(reqEntity);
// 发起请求 并返回请求的响应
response = httpClient.execute(httpPost);
System.out.println("The response value of token:" + response.getFirstHeader("token"));
// 获取响应对象
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
// 打印响应长度
System.out.println("Response content length: " + resEntity.getContentLength());
// 打印响应内容
System.out.println(EntityUtils.toString(resEntity, Charset.forName("UTF-8")));
}
// 销毁
EntityUtils.consume(resEntity);
}catch (Exception e){
e.printStackTrace();
}finally {
try {
if(response != null){
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(httpClient != null){
httpClient.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
3、服务端
@RequestMapping("/processUpload")
public void processUpload(HttpServletRequest request, HttpServletResponse response, SendRequestVo sendRequestVo, @RequestParam("file") MultipartFile file) {
try {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String name1 = file.getName();
byte[] bytes = file.getBytes();
FileUtils.writeByteArrayToFile(new File("C:\Users\wangdongjiang\Desktop\wdj\" + name1), bytes);
response.addHeader("token", "hello");
} catch (Exception e) {
e.printStackTrace();
}
}
Life is so short,do something to make yourself happy, such as coding.