| | |
| | | package cn.exrick.xboot.your.util; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | |
| | | import cn.exrick.xboot.your.vo.FindHistoryGpsRequest; |
| | | import cn.exrick.xboot.your.vo.PlaybackURLsVo; |
| | | import cn.exrick.xboot.your.vo.PreviewURLsVo; |
| | | import cn.exrick.xboot.your.vo.TalkURLsVo; |
| | | import cn.exrick.xboot.your.vo.*; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.hikvision.artemis.sdk.ArtemisHttpUtil; |
| | | import com.hikvision.artemis.sdk.config.ArtemisConfig; |
| | | import com.hikvision.artemis.sdk.Client; |
| | | import com.hikvision.artemis.sdk.Request; |
| | | import com.hikvision.artemis.sdk.Response; |
| | | import com.hikvision.artemis.sdk.constant.Constants; |
| | | import com.hikvision.artemis.sdk.enums.Method; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | |
| | | /** |
| | | * 海康车机接口 |
| | | */ |
| | | @Component |
| | | public class HaiKangPost { |
| | | /** |
| | | * STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数. |
| | | */ |
| | | static { |
| | | ArtemisConfig.host = "111.63.178.115:1443";// 平台门户/nginx的IP和端口(必须使用https协议,https端口默认为443) |
| | | ArtemisConfig.appKey = "28156526"; // 秘钥appkey |
| | | ArtemisConfig.appSecret = "MNkyjHuids4XxFONSOaL";// 秘钥appSecret |
| | | } |
| | | /** |
| | | * STEP2:设置OpenAPI接口的上下文 |
| | | */ |
| | | private static final String ARTEMIS_PATH = "/artemis"; |
| | | //private static final String HOST = "111.63.178.115:1443"; |
| | | private static final String HOST = "10.10.101.1:1443"; |
| | | private static final String APP_KEY = "28156526"; |
| | | private static final String APP_SECRET = "MNkyjHuids4XxFONSOaL"; |
| | | |
| | | //根据车辆编号及时段获取历史定位信息 |
| | | public static String findHistoryGps(FindHistoryGpsRequest findHistoryGpsRequest){ |
| | | public String findHistoryGps(FindHistoryGpsRequest findHistoryGpsRequest){ |
| | | String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/rtsm/v1/gps/findHistoryGps"; |
| | | Map<String,String> path = new HashMap<String,String>(2){ |
| | | { |
| | |
| | | } |
| | | }; |
| | | String body= JSONUtil.toJsonStr(findHistoryGpsRequest); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json"); |
| | | String result = doPostStringArtemis(path,body,null,null,"application/json"); |
| | | return result; |
| | | } |
| | | |
| | | //查询指定车辆编号的最新定位 |
| | | public static String findLatestGps(String[] code){ |
| | | public String findLatestGps(String[] code){ |
| | | String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/rtsm/v1/gps/findLatestGps"; |
| | | Map<String,String> path = new HashMap<String,String>(2){ |
| | | { |
| | |
| | | } |
| | | }; |
| | | String body= JSONUtil.toJsonStr(code); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json"); |
| | | String result = doPostStringArtemis(path,body,null,null,"application/json"); |
| | | return result; |
| | | } |
| | | |
| | | //获取监控点预览取流URL |
| | | public static String previewURLs(PreviewURLsVo previewURLsVo){ |
| | | public String previewURLs(PreviewURLsVo previewURLsVo){ |
| | | String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/video/v1/cameras/previewURLs"; |
| | | Map<String,String> path = new HashMap<String,String>(2){ |
| | | { |
| | |
| | | } |
| | | }; |
| | | String body= JSONUtil.toJsonStr(previewURLsVo); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json"); |
| | | String result = doPostStringArtemis(path,body,null,null,"application/json"); |
| | | System.out.println(result); |
| | | return result; |
| | | } |
| | | |
| | | //获取监控点回放取流URL |
| | | public static String playbackURLs(PlaybackURLsVo playbackURLsVo){ |
| | | public String playbackURLs(PlaybackURLsVo playbackURLsVo){ |
| | | String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/video/v1/cameras/playbackURLs"; |
| | | Map<String,String> path = new HashMap<String,String>(2){ |
| | | { |
| | |
| | | } |
| | | }; |
| | | String body= JSONUtil.toJsonStr(playbackURLsVo); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json"); |
| | | String result = doPostStringArtemis(path,body,null,null,"application/json"); |
| | | return result; |
| | | } |
| | | |
| | | //根据报警ID获取关联图片信息 |
| | | public String findPicturesByAlarmId(AlarmVo alarmVo){ |
| | | String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/rtsm/v1/multimedia/findPicturesByAlarmId"; |
| | | Map<String,String> path = new HashMap<String,String>(2){ |
| | | { |
| | | put("https://",findHistoryGpsDataApi); |
| | | } |
| | | }; |
| | | String body= JSONUtil.toJsonStr(alarmVo); |
| | | String result = doPostStringArtemis(path,body,null,null,"application/json"); |
| | | return result; |
| | | } |
| | | |
| | | //语音对讲 |
| | | public static String talkURLs(TalkURLsVo talkURLsVo){ |
| | | public String talkURLs(TalkURLsVo talkURLsVo){ |
| | | String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/video/v1/cameras/talkURLs"; |
| | | Map<String,String> path = new HashMap<String,String>(2){ |
| | | { |
| | |
| | | } |
| | | }; |
| | | String body= JSONUtil.toJsonStr(talkURLsVo); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json"); |
| | | String result = doPostStringArtemis(path,body,null,null,"application/json"); |
| | | return result; |
| | | } |
| | | |
| | | //按事件类型获取事件订阅信息 |
| | | public static String getTopicInfo(){ |
| | | public String getTopicInfo(){ |
| | | String findHistoryGpsDataApi = ARTEMIS_PATH +"/api/common/v1/event/getTopicInfo"; |
| | | Map<String,String> path = new HashMap<String,String>(2){ |
| | | { |
| | | put("https://",findHistoryGpsDataApi); |
| | | } |
| | | }; |
| | | String eventTypes[] = {"5201154049"}; |
| | | String body= JSONUtil.toJsonStr(eventTypes); |
| | | String result = ArtemisHttpUtil.doPostStringArtemis(path,body,null,null,"application/json"); |
| | | BigDecimal eventTypes[] = {new BigDecimal(new String("5201154049"))}; |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("eventTypes",eventTypes); |
| | | String body= JSONUtil.toJsonStr(map); |
| | | System.out.println(body); |
| | | String result = doPostStringArtemis(path,body,null,null,"application/json"); |
| | | return result; |
| | | } |
| | | |
| | | public String doPostStringArtemis(Map<String, String> path, String body, Map<String, String> querys, String accept, String contentType) { |
| | | String httpSchema = (String)path.keySet().toArray()[0]; |
| | | if (httpSchema != null && !StrUtil.isEmpty(httpSchema)) { |
| | | String responseStr = null; |
| | | |
| | | try { |
| | | Map<String, String> headers = new HashMap(); |
| | | if (StrUtil.isNotBlank(accept)) { |
| | | headers.put("Accept", accept); |
| | | } else { |
| | | headers.put("Accept", "*/*"); |
| | | } |
| | | |
| | | if (StrUtil.isNotBlank(contentType)) { |
| | | headers.put("Content-Type", contentType); |
| | | } else { |
| | | headers.put("Content-Type", "application/text;charset=UTF-8"); |
| | | } |
| | | |
| | | Request request = new Request(Method.POST_STRING, httpSchema + HOST, (String)path.get(httpSchema), APP_KEY, APP_SECRET, Constants.DEFAULT_TIMEOUT); |
| | | request.setHeaders(headers); |
| | | request.setQuerys(querys); |
| | | request.setStringBody(body); |
| | | Response response = Client.execute(request); |
| | | responseStr = getResponseResult2(response); |
| | | } catch (Exception var10) { |
| | | } |
| | | |
| | | return responseStr; |
| | | } else { |
| | | throw new RuntimeException("http和https参数错误httpSchema: " + httpSchema); |
| | | } |
| | | } |
| | | |
| | | private String getResponseResult2(Response response) { |
| | | String responseStr = null; |
| | | int statusCode = response.getStatusCode(); |
| | | if (!String.valueOf(statusCode).startsWith("2") && !String.valueOf(statusCode).startsWith("3")) { |
| | | String msg = response.getErrorMessage(); |
| | | responseStr = response.getBody(); |
| | | } else { |
| | | responseStr = response.getBody(); |
| | | } |
| | | |
| | | return responseStr; |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | HaiKangPost haiKangPost = new HaiKangPost(); |
| | | // haiKangPost.getTopicInfo(); |
| | | |
| | | // FindHistoryGpsRequest findHistoryGpsRequest = new FindHistoryGpsRequest(); |
| | | // findHistoryGpsRequest.setVehicleIndexCode("b279d865eabe497db465eb2f4d2cc87d"); |
| | | // findHistoryGpsRequest.setPageNo(1); |
| | | // findHistoryGpsRequest.setPageSize(20); |
| | | // findHistoryGpsRequest.setBeginTime("2021-11-25T03:10:01.000+08:00"); |
| | | // findHistoryGpsRequest.setEndTime("2021-11-25T12:10:01.000+08:00"); |
| | | // System.out.println(findHistoryGps(findHistoryGpsRequest)); |
| | | // HaiKangPost haiKangPost = new HaiKangPost(); |
| | | // System.out.println(haiKangPost.findHistoryGps(findHistoryGpsRequest)); |
| | | |
| | | // String code[] = {"b279d865eabe497db465eb2f4d2cc87d"}; |
| | | // System.out.println(findLatestGps(code)); |
| | | // System.out.println(haiKangPost.findLatestGps(code)); |
| | | |
| | | PreviewURLsVo previewURLsVo = new PreviewURLsVo(); |
| | | previewURLsVo.setCameraIndexCode("27760424aa8b486e84db8d6720b2a9bf"); |
| | | previewURLsVo.setProtocol("rtsp"); |
| | | haiKangPost.previewURLs(previewURLsVo); |
| | | |
| | | } |
| | | } |