package com.ruoyi.task;
|
|
import com.mashape.unirest.http.HttpResponse;
|
import com.mashape.unirest.http.Unirest;
|
import com.mashape.unirest.http.exceptions.UnirestException;
|
import com.ruoyi.aibrain.domain.AiCamera;
|
import com.ruoyi.common.config.RuoYiConfig;
|
|
import okhttp3.*;
|
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
|
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.ssl.SSLContexts;
|
import org.springframework.stereotype.Component;
|
|
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLSocketFactory;
|
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
import java.io.File;
|
import java.io.FileNotFoundException;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.security.KeyManagementException;
|
import java.security.KeyStoreException;
|
import java.security.NoSuchAlgorithmException;
|
import java.security.cert.CertificateException;
|
import java.security.cert.X509Certificate;
|
import java.text.ParseException;
|
import java.util.HashMap;
|
import java.util.Map;
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* 定时任务调度测试
|
*
|
* @author ruoyi
|
*/
|
@Component("sjcsDlTask")
|
public class SjcsDlTask {
|
|
//10秒执行一次
|
public void indexDlTask() {
|
DataAssembleUtil.AssembleCDSSSJ();//实时数据
|
DataAssembleUtil.AssembleCDYCSJ();//异常数据
|
}
|
|
//5分钟执行一次
|
public void indexCameraTask() {
|
CameraAssembleUtil.cameraSatus();//实时状态
|
}
|
|
//执行一次
|
public void indexCameraAiError() throws ParseException {
|
CameraAssembleUtil.cameraAiError();//摄像头报警传输
|
}
|
|
//1分钟执行一次
|
public void indexCameraAiReturn() {
|
AiCamera aiCamera=new AiCamera();
|
aiCamera.setCameraNum("1060101");
|
//CameraAssembleUtil.cameraAiError(aiCamera);//模拟
|
}
|
|
|
|
|
public void fileCameraTask() throws UnirestException, KeyStoreException, NoSuchAlgorithmException, KeyManagementException, IOException {
|
//请求地址
|
String url = "https://192.168.100.89:4200/spjr000/api/open/v1/ai/channel/general/push/";
|
|
//String参数
|
Map<String, String> params = new HashMap<String, String>();
|
params.put("company", RuoYiConfig.getMkbm());//煤矿企业编码
|
params.put("biz","1060101");//摄像头编码
|
params.put("channel","0030001");//分析类型编码
|
params.put("pdt","1705303253");//数据上报时间
|
params.put("data","");//扩展参数
|
|
System.out.println(1111);
|
|
String boundary = "------WebKitFormBoundary7MA4YWxkTrZu0gW--"; // 设置boundary字符串,用于标识参数和附件的边界
|
|
final TrustManager[] trustAllCerts = new TrustManager[]{
|
new X509TrustManager() {
|
@Override
|
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
|
}
|
|
@Override
|
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
|
}
|
|
@Override
|
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
|
return new java.security.cert.X509Certificate[]{};
|
}
|
}
|
};
|
|
final SSLContext sslContext = SSLContext.getInstance("SSL");
|
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
|
final javax.net.ssl.SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
|
|
|
OkHttpClient client = new OkHttpClient.Builder()
|
.connectTimeout(30, TimeUnit.SECONDS)
|
.readTimeout(30, TimeUnit.SECONDS)
|
.sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0])
|
.hostnameVerifier((hostname, session) -> true) // 信任所有主机名
|
.build();
|
File file = new File("D:\\AI\\aibrain\\upload\\2024\\01\\15\\2201810148791060101003000120240115152044.mp4");
|
|
|
RequestBody body = new MultipartBody.Builder()
|
.setType(MultipartBody.FORM)
|
|
.addFormDataPart("company", params.get("company"))
|
.addFormDataPart("biz", params.get("biz"))
|
.addFormDataPart("channel", params.get("channel"))
|
.addFormDataPart("pdt", params.get("pdt"))
|
.addFormDataPart("data", params.get("data"))
|
|
.addFormDataPart("file", "2201810148791060101003000120240115152044.mp4",
|
RequestBody.create(MediaType.parse("application/octet-stream"),
|
file))
|
.build();
|
|
|
Request request = new Request.Builder()
|
.url(url)
|
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
|
.post(body)
|
.build();
|
Response response = client.newCall(request).execute();
|
|
if (response.isSuccessful()) {
|
System.out.println("File uploaded successfully1111."+response.body().toString());
|
|
System.out.println("File uploaded successfully."+response.toString());
|
} else {
|
System.out.println("Failed to upload file. Response code: " + response.code());
|
}
|
|
}
|
|
|
|
public void fileCameraTaskls() throws UnirestException, KeyStoreException, NoSuchAlgorithmException, KeyManagementException, FileNotFoundException {
|
//请求地址
|
String url = "https://192.168.100.89:4200/spjr000/api/open/v1/ai/channel/general/push/";
|
|
SSLContext sslcontext = SSLContexts.custom()
|
.loadTrustMaterial(null, new TrustSelfSignedStrategy())
|
.build();
|
|
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
CloseableHttpClient httpclient = HttpClients.custom()
|
.setSSLSocketFactory(sslsf)
|
.build();
|
Unirest.setHttpClient(httpclient);
|
|
//String参数
|
Map<String, Object> params = new HashMap<String, Object>();
|
params.put("company", RuoYiConfig.getMkbm());//煤矿企业编码
|
params.put("biz","1060101");//摄像头编码
|
params.put("channel","0030001");//分析类型编码
|
params.put("pdt","1699529835");//数据上报时间
|
params.put("data","");//扩展参数
|
System.out.println(1111);
|
|
String boundary = "------WebKitFormBoundary7MA4YWxkTrZu0gW--"; // 设置boundary
|
File file = new File("D:\\AI\\aibrain\\upload\\2023\\11\\09\\2201810148791060101003000120231109161143.mp4");
|
|
/* MultipartBodyRequestBuilder requestBuilder = Unirest.post(url)
|
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
|
.body(MultipartBody.fromFile(file, "file"));*/
|
|
HttpResponse<String> response = Unirest.post(url)
|
.header("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)")
|
.header("Accept", "*/*")
|
.header("Host", "192.168.100.89:4200")
|
.header("Connection", "keep-alive")
|
.header("Content-Type", "multipart/form-data;boundary=" + boundary)
|
|
//携带的参数
|
.field("company", params.get("company"))
|
.field("biz", params.get("biz"))
|
.field("channel", params.get("channel"))
|
.field("pdt", params.get("pdt"))
|
.field("data", params.get("data"))
|
.field("file",file)
|
.asString();
|
System.out.println(2222);
|
System.out.println(response.getBody());
|
|
}
|
|
|
}
|