package org.dromara.system.uitil;
|
|
import cn.hutool.json.JSON;
|
import org.apache.commons.httpclient.HttpClient;
|
import org.apache.commons.httpclient.HttpStatus;
|
import org.apache.commons.httpclient.methods.PostMethod;
|
import org.apache.commons.httpclient.methods.StringRequestEntity;
|
import org.apache.commons.io.IOUtils;
|
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpResponse;
|
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.MultipartEntityBuilder;
|
import org.apache.http.impl.client.HttpClientBuilder;
|
import org.apache.http.util.EntityUtils;
|
import org.dromara.common.oss.entity.SynchronousRequest;
|
import org.dromara.common.oss.entity.SynchronousRequest2;
|
import org.dromara.common.oss.entity.VideoRequest;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.*;
|
import java.net.HttpURLConnection;
|
import java.net.URL;
|
import java.net.URLEncoder;
|
import java.nio.charset.StandardCharsets;
|
import java.util.HashMap;
|
|
public class HttpUtils {
|
|
private static final String BOUNDARY = "----WebKitFormBoundary7MA4YWxkTrZu0gW";
|
private static final String LINE_FEED = "\r\n";
|
private static final String CHARSET = "UTF-8";
|
|
public static File convert(MultipartFile multipartFile) throws IOException {
|
File file = new File(multipartFile.getOriginalFilename());
|
multipartFile.transferTo(file);
|
return file;
|
}
|
|
/**
|
* 上传同步 视频专网 -- 公安内网
|
* @param url
|
* @param entity
|
* @return
|
* @throws IOException
|
*/
|
public static String sendPostRequest(String url, SynchronousRequest entity) throws IOException {
|
org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build();
|
HttpPost httpPost = new HttpPost(url);
|
|
ContentType contentType = ContentType.create("multipart/form-data", StandardCharsets.UTF_8);
|
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
|
// 添加MultipartFile参数
|
builder.addBinaryBody("file", entity.getFile().getBytes(), ContentType.MULTIPART_FORM_DATA, entity.getFile().getOriginalFilename());
|
|
// 添加String参数
|
builder.addTextBody("path", entity.getPath(), ContentType.TEXT_PLAIN);
|
builder.addTextBody("ossId", entity.getOssId(), ContentType.TEXT_PLAIN);
|
builder.addTextBody("createBy", entity.getCreateBy(), ContentType.TEXT_PLAIN);
|
builder.addTextBody("password", entity.getPassword(), ContentType.TEXT_PLAIN);
|
builder.addTextBody("fileName", entity.getFileName(), contentType);
|
builder.addTextBody("createTime", entity.getCreateTime(), ContentType.TEXT_PLAIN);
|
|
HttpEntity multipart = builder.build();
|
httpPost.setEntity(multipart);
|
|
HttpResponse response = httpClient.execute(httpPost);
|
String responseBody = EntityUtils.toString(response.getEntity());
|
System.out.println("Response: " + responseBody);
|
return responseBody;
|
}
|
|
/**
|
* 上传同步 视频专网
|
* @param url
|
* @param entity
|
* @return
|
* @throws IOException
|
*/
|
public static String sendPostRequest2(String url, VideoRequest entity) throws IOException {
|
org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build();
|
HttpPost httpPost = new HttpPost(url);
|
|
ContentType contentType = ContentType.create("multipart/form-data", StandardCharsets.UTF_8);
|
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
|
// 添加MultipartFile参数
|
builder.addBinaryBody("file", entity.getFile().getBytes(), ContentType.MULTIPART_FORM_DATA, entity.getFile().getOriginalFilename());
|
|
// 添加String参数
|
builder.addTextBody("fileName", entity.getFileName(), contentType);
|
|
HttpEntity multipart = builder.build();
|
httpPost.setEntity(multipart);
|
|
HttpResponse response = httpClient.execute(httpPost);
|
String responseBody = EntityUtils.toString(response.getEntity());
|
System.out.println("Response: " + responseBody);
|
return responseBody;
|
}
|
|
|
/**
|
* 删除同步
|
* @param url
|
// * @param parameter
|
* @throws Exception
|
*/
|
public static String sendDeleteRequest(String url, String ossId) throws IOException {
|
org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build();
|
HttpPost httpPost = new HttpPost(url);
|
|
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
|
// 添加MultipartFile参数
|
// builder.addBinaryBody("file", entity.getFile().getBytes(), ContentType.MULTIPART_FORM_DATA, entity.getFile().getOriginalFilename());
|
|
// 添加String参数
|
builder.addTextBody("ossId", ossId, ContentType.TEXT_PLAIN);
|
|
HttpEntity multipart = builder.build();
|
httpPost.setEntity(multipart);
|
|
HttpResponse response = httpClient.execute(httpPost);
|
String responseBody = EntityUtils.toString(response.getEntity());
|
System.out.println("Response: " + responseBody);
|
return responseBody;
|
}
|
|
|
/**
|
* 上传同步 视频专网 -- 公安内网(定时)
|
* @param url
|
* @param entity
|
* @return
|
* @throws IOException
|
*/
|
public static String sendPostRequest2(String url, SynchronousRequest entity, byte[] bytes) throws IOException {
|
org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build();
|
HttpPost httpPost = new HttpPost(url);
|
|
ContentType contentType = ContentType.create("multipart/form-data", StandardCharsets.UTF_8);
|
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
|
// 添加MultipartFile参数
|
builder.addBinaryBody("file", bytes, ContentType.MULTIPART_FORM_DATA, entity.getFileName());
|
|
// 添加String参数
|
builder.addTextBody("path", entity.getPath(), ContentType.TEXT_PLAIN);
|
builder.addTextBody("ossId", entity.getOssId(), ContentType.TEXT_PLAIN);
|
builder.addTextBody("createBy", entity.getCreateBy(), ContentType.TEXT_PLAIN);
|
builder.addTextBody("password", entity.getPassword(), ContentType.TEXT_PLAIN);
|
builder.addTextBody("fileName", entity.getFileName(), contentType);
|
builder.addTextBody("createTime", entity.getCreateTime(), ContentType.TEXT_PLAIN);
|
|
HttpEntity multipart = builder.build();
|
httpPost.setEntity(multipart);
|
|
HttpResponse response = httpClient.execute(httpPost);
|
String responseBody = EntityUtils.toString(response.getEntity());
|
System.out.println("Response: " + responseBody);
|
return responseBody;
|
}
|
|
/**
|
* @param input 输入流
|
* @return byte[] 数组
|
*/
|
public static byte[] inputStream2byte(InputStream input) throws IOException {
|
ByteArrayOutputStream output = new ByteArrayOutputStream();
|
byte[] buffer = new byte[4096];
|
int n = 0;
|
while (-1 != (n = input.read(buffer))) {
|
output.write(buffer, 0, n);
|
}
|
return output.toByteArray();
|
}
|
|
}
|