1.接口
@RequestMapping(value = "/exportExcel2")
public void exportExcel2() throws Exception {
File file=new File("D:/test/123.xlsx");
OutputStream os=new FileOutputStream(file);
//"http://127.0.0.1:9101/test/testPath/exportExcel"为请求的URL,可自行改为原接口的名称
HttpUtils.sendUrlPostFile("http://127.0.0.1:9101/test/testPath/exportExcel","{\"user\":\"system\"}",os);
os.flush();
os.close();
}
2.工具类
import cn.hutool.core.io.IoUtil;
import okhttp3.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.*;
import java.io.*;
import java.net.*;
import java.nio.charset.StandardCharsets;
import java.security.cert.X509Certificate;
import java.util.Objects;
/**
* 通用http发送方法
*
* @author jemmychen
*/
public class HttpUtils {
private static final Logger log = LoggerFactory.getLogger(HttpUtils.class);
/**
* 向指定 URL 发送POST方法的请求
*
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendUrlPostFile(String url, String param, OutputStream os) {
OutputStream out = null;
String response = "";
log.info(param);
try {
URL httpUrl = null; //HTTP URL类 用这个类来创建连接
//创建URL
httpUrl = new URL(url);
//建立连接
HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept", ContentTypeEnum.applicationjson.getCode());
conn.setConnectTimeout(30000);
conn.setReadTimeout(10000);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();
out = conn.getOutputStream();
out.write(param.getBytes(StandardCharsets.UTF_8));
out.flush();
out.close();
IoUtil.copy(conn.getInputStream(), os);
// 断开连接
conn.disconnect();
log.info(response);
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
return response;
}
/**
* 向指定 URL 发送POST方法的请求
*
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendPost(String url, String param, String charset, ContentTypeEnum contentType) throws Exception {
OutputStreamWriter out = null;
BufferedReader reader = null;
String response = "";
System.out.println(param);
try {
URL httpUrl = null; //HTTP URL类 用这个类来创建连接
//创建URL
httpUrl = new URL(url);
//建立连接
HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", contentType.getCode());
conn.setRequestProperty("Accept", contentType.getCode());
conn.setConnectTimeout(30000);
conn.setReadTimeout(10000);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();
//POST请求
out = new OutputStreamWriter(
conn.getOutputStream(), "UTF-8");
out.write(param);
out.flush();
//读取响应
reader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String lines;
while ((lines = reader.readLine()) != null) {
lines = new String(lines.getBytes(), charset);
response += lines;
}
reader.close();
// 断开连接
conn.disconnect();
log.info(response.toString());
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (reader != null) {
reader.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return response;
}
}