package com.boottest.app;
import org.apache.commons.codec.Charsets;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.*;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
public class FileTest {
public static void main(String[] args) throws Exception {
String url ="http://localhost:8200/sys/uploadfile/uploadFile";
InputStream inputStream=new FileInputStream("C:\\Users\\Administrator\\Desktop\\work_order1.txt");;
List<NameValuePair> params=new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("file_real_name","work_order1.txt"));
String Result=postInputStream(url,inputStream,"work_order1.txt",params);
System.out.println("发送消息收到的返回:"+Result);
}
public static String postInputStream(String requestUrl,InputStream inputStream, String fileName,
List<NameValuePair> params) throws Exception {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
// 创建 POST请求
HttpPost httpPost = new HttpPost(requestUrl);
// 构建多组件 Entrity构建器
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setCharset(Charsets.UTF_8);
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
//文件传输http请求头(multipart/form-data)
builder.addBinaryBody("file", inputStream, ContentType.MULTIPART_FORM_DATA, fileName);// 文件流
//字节传输http请求头(application/json)
ContentType contentType = ContentType.create("application/json", Charsets.UTF_8);
for (NameValuePair param : params) {
// 传输字节流
builder.addTextBody(param.getName(), param.getValue(), contentType);
}
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
// 执行提交
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null) {
// 将响应内容转换为字符串
return EntityUtils.toString(responseEntity, Charsets.UTF_8);
}
} catch (Exception e) {
throw new Exception("post请求失败,"+e.getMessage());
}
return "";
}
}
所需pom依赖:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5</version>
</dependency>