package com.ltgk.video.service.impl;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import com.ltgk.common.constant.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * 海康开放api调用
 *
 * @author limap
 */
@Component
public class ArtemisPostService {

    private static final Logger logger = LoggerFactory.getLogger(ArtemisPostService.class);

    private static final String SERVER_IP = "125.124.131.105";

    private static final String SERVER_PORT = "6811";
    private static final String SERVER_PORT2 = "6811";

    private static final String REAL_NAME = "www.yhships.cn";

    private static final String CONTEXT_PATH = "/api";
    private static final String CONTEXT_WEB_PATH = "/web";

    /**
     * 请根据自己的appKey和appSecret更换static静态块中的三个参数. [1 host]
     * 如果你选择的是和现场环境对接,host要修改为现场环境的ip,https端口默认为443，http端口默认为80.例如10.33.25.22:443 或者10.33.25.22:80
     * appKey和appSecret请按照或得到的appKey和appSecret更改.
     * TODO 调用前先要清楚接口传入的是什么，是传入json就用doPostStringArtemis方法，下载图片doPostStringImgArtemis方法
     */
    /**
     * 根据API文档可以看出来，这是一个POST请求的Rest接口，而且传入的参数值为一个json
     * ArtemisHttpUtil工具类提供了doPostStringArtemis这个函数，一共六个参数在文档里写明其中的意思，因为接口是https，
     * 所以第一个参数path是一个hashmap类型，请put一个key-value，query为传入的参数，body为传入的json数据
     * 传入的contentType为application/json，accept不指定为null
     * header没有额外参数可不传,指定为null
     *
     */
    static {

        // 代理API网关nginx服务器ip端口
        ArtemisConfig.host = "39.175.75.233:10443";
        // 秘钥appkey
        ArtemisConfig.appKey = "28273161";
        // 秘钥appSecret
        ArtemisConfig.appSecret = "pvQSichVMqtLGh4Ltedo";
    }

    /**
     * 能力开放平台的网站路径
     * 路径不用修改，就是/artemis
     */
    private static final String ARTEMIS_PATH = "/artemis";

    /**
     * post请求application/json类型参数
     */
    private static final String CONTENT_TYPE = "application/json";

    /**
     * TODO 根据现场环境部署确认是http还是https
     */

    private static final String HTTPS_TYPE = "https://";

    private static final String HTTP_TYPE = "http://";
    /**
     * 分页获取监控点资源API
     */
    private static final String GET_MONITOR_POINT_URL = "/api/resource/v1/cameras";

    /**
     * 获取监控点预览取流API
     */
    private static final String GET_PREVIEW_URL = "/api/video/v2/cameras/previewURLs";

    /**
     * 订阅事件API
     */
    private static final String SIGN_INTERFACE = "/api/eventService/v1/eventSubscriptionByEventTypes";

    /**
     * 查询订阅事件API
     */
    private static final String GET_SIGN_INFO = "/api/eventService/v1/eventSubscriptionView";

    /**
     * 图片下载API
     */
    private static final String GET_IMG_URL = "/api/video/v1/events/picture";
    /**
     * 云台操作API
     */
    private static final String CONTROL_URL = "/api/video/v1/ptzs/controlling";
    /**
     * 3D放大API
     */
    private static final String SEL_ZOOM_URL = "/api/video/v1/ptzs/selZoom";

    /**
     * 设置预置点信息API
     */
    private static final String PRESETS_ADDITION_URL = "/api/video/v1/presets/addition";
    /**
     * 查询预置点信息API
     */
    private static final String PRESETS_SEARCHES_URL = "/api/video/v1/presets/searches";
    /**
     * 删除预置点信息API
     */
    private static final String PRESETS_DELETION_URL = "/api/video/v1/presets/deletion";

    /**
     * 手动抓图API
     */
    private static final String MANUAL_CAPTURE_URL = "/api/video/v1/manualCapture";

    /**
     * 录像锁定与解锁API
     */
    private static final String LOCK_URL = "/api/video/v1/record/lock";

    /**
     * 开始手动录像API
     */
    private static final String START_RECORD_URL = "/api/video/v1/manualRecord/start";

    /**
     * 停止手动录像API
     */
    private static final String STOP_RECORD_URL = "/api/video/v1/manualRecord/stop";

    /**
     * 获取监控点回放取流API
     */
    private static final String PLAY_BACK_URL = "/api/video/v2/cameras/playbackURLs";

    /**
     * 根据广播分区获取广播点
     */
    private static final String FETCH_AUDIO_AREA_PAGE_URL = "/api/ibas/audioArea/v1/fetchAudioAreaPage";

    /**
     * 根据广播分区获取广播点
     */
    private static final String FETCH_AUDIO_CHANNEL_BY_AREA_URL = "/api/ibas/audioArea/v1/fetchAudioChannelByArea";

    /**
     * 分页查询媒体文件
     */
    private static final String FETCH_MEDIA_PAGE_URL = "/api/ibas/media/v1/fetchMediaPage";

    /**
     * 分页获取广播媒体库目录接口
     */
    private static final String FETCH_MEDIA_LIBRARY_URL = "/api/ibas/media/v1/fetchMediaLibrary";

    /**
     * 根据指定标识获取广播媒体库文件
     */
    private static final String FETCH_MEDIA_BY_INDEX_CODE_URL = "/api/ibas/media/v1/fetchMediaByIndexCode";

    /**
     * 分页获取广播点
     */
    private static final String FETCH_AUDIO_CHANNEL_URL = "/api/ibas/resource/v1/fetchAudioChannel";

    /**
     * 分页获取广播设备列表
     */
    private static final String FETCH_AUDIO_DEVICE_URL = "/api/ibas/resource/v1/fetchAudioDevice";

    /**
     * 根据设备信息获取广播点
     */
    private static final String FETCH_AUDIO_CHANNEL_BY_DEVICE_URL = "/api/ibas/resource/v1/fetchAudioChannelByDevice";

    /**
     * 分页查询定时任务
     */
    private static final String FETCH_AUDIO_TASK_PAGE_URL = "/api/ibas/audioTask/v1/fetchAudioTaskPage";

    /**
     * 分页获取广播预案接口
     */
    private static final String FETCH_AUDIO_PLAN_URL = "/api/ibas/audioPlan/v1/fetchAudioPlanPage";

    /**
     * 广播设备自定义播放或停止
     */
    private static final String CUSTOM_BROAD_CAST_URL = "/api/ibas/v1/customBroadcast";

    /**
     * 获取H5实时广播URL
     */
    private static final String BROAD_CAST_URL = "/api/ibas/media/v1/broadcastURLs";

    /**
     * 设置广播点音量
     */
    private static final String SET_AUDIO_VOLUME_PPARAM_URL = "/api/ibas/resource/v1/setAudioVolumeParam";

    static final String onLineURLsApi = ARTEMIS_PATH + "/api/nms/v1/online/camera/get";

    static final String cameraURLsApi = ARTEMIS_PATH + "/api/resource/v1/cameras/indexCode";



    /**
     * 根据广播分区获取广播点
     * @param param
     * @return
     */
    public static Object fetchAudioAreaPage(Object param) {

        final String fetchAudioAreaPage = ARTEMIS_PATH + FETCH_AUDIO_AREA_PAGE_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchAudioAreaPage);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 根据广播分区获取广播点
     * @param param
     * @return
     */
    public static Object fetchAudioChannelByArea(Object param) {

        final String fetchAudioChannelByArea = ARTEMIS_PATH + FETCH_AUDIO_CHANNEL_BY_AREA_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchAudioChannelByArea);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 分页查询媒体文件
     * @param param
     * @return
     */
    public static Object fetchMediaPage(Object param) {

        final String fetchMediaPage = ARTEMIS_PATH + FETCH_MEDIA_PAGE_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchMediaPage);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 分页获取广播媒体库目录接口
     * @param param
     * @return
     */
    public static Object fetchMediaLibrary(Object param) {

        final String fetchMediaLibrary = ARTEMIS_PATH + FETCH_MEDIA_LIBRARY_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchMediaLibrary);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 根据指定标识获取广播媒体库文件
     * @param param
     * @return
     */
    public static Object fetchMediaByIndexCode(Object param) {

        final String fetchMediaByIndexCode = ARTEMIS_PATH + FETCH_MEDIA_BY_INDEX_CODE_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchMediaByIndexCode);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 分页获取广播点
     * @param param
     * @return
     */
    public static Object fetchAudioChannel(Object param) {

        final String fetchAudioChannel = ARTEMIS_PATH + FETCH_AUDIO_CHANNEL_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchAudioChannel);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 分页获取广播设备列表
     * @param param
     * @return
     */
    public static Object fetchAudioDevice(Object param) {

        final String fetchAudioDevice = ARTEMIS_PATH + FETCH_AUDIO_DEVICE_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchAudioDevice);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 根据设备信息获取广播点
     * @param param
     * @return
     */
    public static Object fetchAudioChannelByDevice(Object param) {

        final String fetchAudioChannelByDevice = ARTEMIS_PATH + FETCH_AUDIO_CHANNEL_BY_DEVICE_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchAudioChannelByDevice);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 分页查询定时任务
     * @param param
     * @return
     */
    public static Object fetchAudioTaskPage(Object param) {

        final String fetchAudioTaskPage = ARTEMIS_PATH + FETCH_AUDIO_TASK_PAGE_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchAudioTaskPage);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 分页获取广播预案接口
     * @param param
     * @return
     */
    public static Object fetchAudioPlanPage(Object param) {

        final String fetchAudioPlanPage = ARTEMIS_PATH + FETCH_AUDIO_PLAN_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, fetchAudioPlanPage);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 广播设备自定义播放或停止
     * @param param
     * @return
     */
    public static Object customBroadcast(Object param) {

        final String customBroadcast = ARTEMIS_PATH + CUSTOM_BROAD_CAST_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, customBroadcast);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 获取H5实时广播URL
     * @param param
     * @return
     */
    public static Object broadcastURLs(Object param) {

        final String broadcastURLs = ARTEMIS_PATH + BROAD_CAST_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, broadcastURLs);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 设置广播点音量
     * @param param
     * @return
     */
    public static Object setAudioVolumeParam(Object param) {

        final String setAudioVolumeParam = ARTEMIS_PATH + SET_AUDIO_VOLUME_PPARAM_URL;
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, setAudioVolumeParam);
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, JSONObject.toJSONString(param), null, null, CONTENT_TYPE, null);
    }

    /**
     * 分页获取监控点资源
     *
     * @return 调用结果
     */
    public static String callPostStringApi() {

        final String getCamsApi = ARTEMIS_PATH + GET_MONITOR_POINT_URL;
        // 根据现场环境部署确认是http还是https
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, getCamsApi);

        JSONObject jsonBody = new JSONObject();

        jsonBody.put("pageNo", 1);
        jsonBody.put("pageSize", 200);
        jsonBody.put("treeCode", null);
        String body = jsonBody.toJSONString();
        // post请求application/json类型参数
        return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
    }

    /**
     * 获取监控点预览取流URLv2
     *
     * @param code 监控点唯一标识
     * @param previewProtocol 取流协议（应用层协议）
     * @return 调用结果
     */
    public static String getPreviewUrl(String code,String previewProtocol) {
        if (StringUtils.isEmpty(previewProtocol)) {
            previewProtocol = "rtsp";
        }
        final String getCamsApi = ARTEMIS_PATH + GET_PREVIEW_URL;
        // 根据现场环境部署确认是http还是https
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, getCamsApi);

        JSONObject jsonBody = new JSONObject();

        // 码流类型，0:主码流 1:子码流 2:第三码流 参数不填，默认为主码流
        Integer streamType = 0;
        // 取流协议（应用层协议），
        // “hik”:HIK私有协议，使用视频SDK进行播放时，传入此类型；
        // “rtsp”:RTSP协议；
        // “rtmp”:RTMP协议（RTMP协议只支持海康SDK协议、EHOME协议、ONVIF协议接入的设备；只支持H264视频编码和AAC音频编码）；
        // “hls”:HLS协议（HLS协议只支持海康SDK协议、EHOME协议、ONVIF协议接入的设备；只支持H264视频编码和AAC音频编码）；
        // “ws”:Websocket协议（一般用于H5视频播放器取流播放）。
        String protocol = previewProtocol;
        // 传输协议（传输层协议），0:UDP 1:TCP 默认是TCP 注：GB28181 2011及以前版本只支持UDP传输
        Integer transmode = 1;
        // 转码标志，不携带此字段或传0表示不转码，传1或2表示转码。0	不转码 1组件转码 2设备转码，仅支持分辨率、比特率、帧率转码参数进行转码
        String expand = "transcode=0";
        // 输出码流转封装格式，“ps”:PS封装格式、“rtp”:RTP封装协议。当protocol=rtsp时生效，且不传值时默认为RTP封装协议。
        String streamform = "rtp";

        jsonBody.put("cameraIndexCode", code);
        jsonBody.put("streamType", streamType);
        jsonBody.put("protocol", protocol);
        jsonBody.put("transmode", transmode);
        jsonBody.put("expand", expand);
        jsonBody.put("streamform", streamform);

        String body = jsonBody.toJSONString();

        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
        JSONObject resultObject = JSONObject.parseObject(result);
        JSONObject data = resultObject.getJSONObject("data");
        return data.getString("url");
    }

    /**
     * 订阅事件（事件注册）
     *
     * @return 调用结果
     */
//    public static String signAreaInterface() {
//        final String getCamsApi = ARTEMIS_PATH + SIGN_INTERFACE;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, getCamsApi);
//
//        JSONObject jsonBody = new JSONObject();
//
//        JSONArray eventTypes = new JSONArray();
//        eventTypes.add(Integer.parseInt(Constants.AREA_WARN_CODE));
//        eventTypes.add(Integer.parseInt(Constants.IDENTIFY_CODE));
//        jsonBody.put("eventTypes", eventTypes);
//        JSONArray eventLvl = new JSONArray();
//        eventLvl.add(2);
//        jsonBody.put("eventLvl", eventLvl);
//        jsonBody.put("subType", 0);
//        // TODO 回调接口
//        jsonBody.put("eventDest", HTTP_TYPE + SERVER_IP + ":" + SERVER_PORT2 + CONTEXT_WEB_PATH + "/rest/videoWarning/listenAreaWarn");
////        jsonBody.put("eventDest", HTTPS_TYPE + REAL_NAME + CONTEXT_PATH + "/rest/videoWarning/listenAreaWarn");
//        String body = jsonBody.toJSONString();
//
//        return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//    }

//    /**
//     * 订阅事件（事件注册）
//     *
//     * @return 调用结果
//     */
//    public static String signFireSmokeInterface() {
//        final String getCamsApi = ARTEMIS_PATH + SIGN_INTERFACE;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, getCamsApi);
//
//        JSONObject jsonBody = new JSONObject();
//
//        JSONArray eventTypes = new JSONArray();
//        eventTypes.add(Constants.FIRE_SMOKE_WARN_CODE);
//        eventTypes.add(Constants.FIRE_POINT_WARN_CODE);
//        eventTypes.add(Constants.SMOKE_WARN_CODE);
//        jsonBody.put("eventTypes", eventTypes);
//        // TODO 回调接口
//        // jsonBody.put("eventDest", "http://60.212.191.109:4001/wdyc/rest/videoMonitorAlarm/listen");
//        jsonBody.put("eventDest", HTTP_TYPE + SERVER_IP + ":" + SERVER_PORT + CONTEXT_PATH + "/rest/secureCenter/smokeFireCallBack");
//        String body = jsonBody.toJSONString();
//
//        return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//    }

//    /**
//     * 订阅车辆报警事件（事件注册）
//     *
//     * @return 调用结果
//     */
//    public static String signVehicleInterface() {
//        final String getCamsApi = ARTEMIS_PATH + SIGN_INTERFACE;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, getCamsApi);
//
//        JSONObject jsonBody = new JSONObject();
//
//        JSONArray eventTypes = new JSONArray();
//        eventTypes.add(Constants.VEHICLE_BLACKLIST_WARN_CODE);
//        eventTypes.add(Constants.VEHICLE_SPEED_WARN_CODE);
//        eventTypes.add(Constants.VEHICLE_RETROGRADE_WARN_CODE);
//        eventTypes.add(Constants.ILLEGALLY_PARK_WARN_CODE);
//        jsonBody.put("eventTypes", eventTypes);
//        // 回调接口
//        jsonBody.put("eventDest", HTTP_TYPE + SERVER_IP + ":" + SERVER_PORT + CONTEXT_PATH + "/rest/secureCenter/vehicleCallBack");
//
//        String body = jsonBody.toJSONString();
//
//        return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//    }

//    /**
//     * 订阅重点人员识别报警事件（事件注册）
//     *
//     * @return 调用结果
//     */
//    public static String signMainPersonInterface() {
//        final String getCamsApi = ARTEMIS_PATH + SIGN_INTERFACE;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, getCamsApi);
//
//        JSONObject jsonBody = new JSONObject();
//
//        JSONArray eventTypes = new JSONArray();
//        eventTypes.add(Constants.MAIN_PERSON_WARN_CODE);
//
//        jsonBody.put("eventTypes", eventTypes);
//        // 回调接口
//        jsonBody.put("eventDest", HTTP_TYPE + SERVER_IP + ":" + SERVER_PORT + CONTEXT_PATH + "/rest/secureCenter/mainFaceCallBack");
//        String body = jsonBody.toJSONString();
//
//        return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//    }

    /**
     * 获取报警截图
     *
     * @param svrIndexCode 设备唯一标识
     * @param captureId    url
     * @return 调用结果
     */
    public static String imgUrl(String svrIndexCode, String captureId) throws Exception {
        final String getCamsApi = ARTEMIS_PATH + GET_IMG_URL;
        // 根据现场环境部署确认是http还是https
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, getCamsApi);

        JSONObject jsonBody = new JSONObject();

        jsonBody.put("svrIndexCode", svrIndexCode);
        jsonBody.put("picUri", captureId);

        jsonBody.put("netProtocol", "http");

        String body = jsonBody.toJSONString();

        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
        JSONObject resultObject = JSONObject.parseObject(result);
        JSONObject data = resultObject.getJSONObject("data");
        // TODO 待确认如何替换
        result = data.getString("picUrl").replaceAll("https:", "http:").replaceAll(":6113", ":6040");
        return result;
    }

    /**
     * 查询订阅信息
     *
     * @return 调用结果
     */
    public static String signInfo() {
        final String getCamsApi = ARTEMIS_PATH + GET_SIGN_INFO;
        // 根据现场环境部署确认是http还是https
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, getCamsApi);

        return ArtemisHttpUtil.doPostStringArtemis(path, null, null, null, CONTENT_TYPE, null);
    }


    /**
     * 查询预置点信息
     * 综合安防管理平台iSecure Center V1.2及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @return 调用结果
     */
//    public static JSONObject presetsSearch(String cameraIndexCode) {
//        final String presetsSearchApi = ARTEMIS_PATH + PRESETS_SEARCHES_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, presetsSearchApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("查询监控点上的预置点请求参数：{} ," +
//                "\n查询监控点上的预置点的响应信息：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }


    /**
     * 云台跳转到指定预置点
     * 综合安防管理平台iSecure Center V1.0及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @param speed           台速度，取值范围为1-100，默认50
     * @param presetIndex     预置点编号，可通过查询预置点信息接口获取整数，通常在300以内
     * @return 调用结果
     */
//    public static JSONObject goToPreset(String cameraIndexCode, Integer speed, String presetIndex) {
//        final String goToPresetApi = ARTEMIS_PATH + CONTROL_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, goToPresetApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        jsonBody.put("action", 0);
//        jsonBody.put("command", "GOTO_PRESET");
//        if (speed == null) {
//            speed = 50;
//        }
//        jsonBody.put("speed", speed);
//        jsonBody.put("presetIndex", presetIndex);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("跳转到监控点请求参数：{} ," +
//                "\n跳转到监控点响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }


    /**
     * 手动抓图
     * 该接口用于手动触发设备抓图，返回图片的地址，抓图前请确保平台上已配置图片存储信息。抓图时间为触发手动抓图命令的时间
     * 综合安防管理平台iSecure Center V1.2及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @return 调用结果
     */
//    public static JSONObject catchImage(String cameraIndexCode) {
//        final String catchImageApi = ARTEMIS_PATH + MANUAL_CAPTURE_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, catchImageApi);
//        JSONObject jsonBody = new JSONObject();
//
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("手动抓图请求参数：{} ," +
//                "\n手动抓图响应结果：{}", body, response);
//        response = response.replaceAll("https:", "http:").replaceAll(":6113", ":6040");
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }


    /**
     * 手动录像
     * 通过向中心存储接入服务下发锁定/解锁指定编码器，指定时间段的录像。
     * 进行录像锁定/解锁操作的用户需要配置相应监控点的录像回放权限，本接口会根据合作方的userId进行权限过滤。
     * 仅支持中心存储，暂不支持设备存储。
     * 综合安防管理平台iSecure Center V1.4及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @param start           录像时长，单位秒
     * @param end             结束
     * @return 调用结果
     */
//    public static JSONObject lockVideo(String cameraIndexCode, Date start, Date end) {
//        final String lockVideoApi = ARTEMIS_PATH + LOCK_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, lockVideoApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        //下发的存储类型。0-中心存储，1-设备存储。如果不传入，默认为0-中心存储
//        jsonBody.put("type", 0);
//        //开始时间（IOS8601格式：yyyy-MM-dd’T’HH:mm:ss.SSSzzz +当前时区，例如北京时间：2018-07-26T15:00:00.000+08:00）
//        jsonBody.put("startTime", DateFormatUtils.format(start, "yyyy-MM-dd'T'HH:mm:ss.SSSZZ"));
//        jsonBody.put("endTime", DateFormatUtils.format(end, "yyyy-MM-dd'T'HH:mm:ss.SSSZZ"));
//        //锁定时长，单位：秒，为0时表示解锁，取值范围：0-1576800000
//        jsonBody.put("lockTime", (end.getTime() - start.getTime()) / 1000);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("锁定录像请求参数：{} ," +
//                "\n锁定录像响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }


    /**
     * 开始手动录像
     * 1.该接口用于向存储接入服务下发开始手动录像请求，将前端实时流存储到存储设备上，支持中心存储和设备存储两种存储模式。萤石设备不支持手动录像功能。
     * 2.由于开始手动录像命令需要先下发到sac再到存储，实际录像开始时间与调用接口时间会稍有延迟。
     * 综合安防管理平台iSecure Center V1.3及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @return 调用结果
     */
//    public static JSONObject startCatchVideo(String cameraIndexCode) {
//        final String startCatchVideoApi = ARTEMIS_PATH + START_RECORD_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, startCatchVideoApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        //下发的存储类型。0-中心存储，1-设备存储。如果不传入，默认为0-中心存储
//        jsonBody.put("type", 0);
//        //报警触发或移动侦测
//        jsonBody.put("recordType", 3);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("开始手动录像请求参数：{} ," +
//                "\n开始手动录像响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            result.put("taskID", result.getJSONObject("data").getString("taskID"));
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }


    /**
     * 停止手动录像
     * 1.该接口用于根据手动录像任务ID，向存储接入服务下发停止手动录像请求, 支持中心存储和设备存储两种存储模式。萤石设备不支持手动录像功能。
     * 2.由于停止手动录像命令需要先下发到sac再到存储，实际录像结束时间与调用接口时间会稍有延迟。
     * 综合安防管理平台iSecure Center V1.5及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @param taskId          录像任务id
     * @return 调用结果
     */
//    public static JSONObject stopCatchVideo(String cameraIndexCode, String taskId) {
//        final String stopCatchVideoApi = ARTEMIS_PATH + STOP_RECORD_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, stopCatchVideoApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        //下发的存储类型。0-中心存储，1-设备存储。如果不传入，默认为0-中心存储
//        jsonBody.put("type", 0);
//        jsonBody.put("taskID", taskId);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("停止手动录像请求参数：{} ," +
//                "\n停止手动录像响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }


    /**
     * 录像回放
     *
     * @param cameraIndexCode 监控点唯一标识
     * @param start           查询开始时间
     * @param end             查询结束时间
     * @return 调用结果
     */
//    public static JSONObject getHistoryVideoURL(String cameraIndexCode, Date start, Date end) {
//        final String getHistoryVideoURLApi = ARTEMIS_PATH + PLAY_BACK_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, getHistoryVideoURLApi);
//
//        String contentType = "application/json";
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        //开始时间（IOS8601格式：yyyy-MM-dd’T’HH:mm:ss.SSSzzz +当前时区，例如北京时间：2018-07-26T15:00:00.000+08:00）
//        jsonBody.put("beginTime", DateFormatUtils.format(start, "yyyy-MM-dd'T'HH:mm:ss.SSSZZ"));
//        //开始时间（IOS8601格式：yyyy-MM-dd’T’HH:mm:ss.SSSzzz +当前时区，例如北京时间：2018-07-26T15:00:00.000+08:00）
//        jsonBody.put("endTime", DateFormatUtils.format(end, "yyyy-MM-dd'T'HH:mm:ss.SSSZZ"));
//        //0-中心存储，1-设备存储。如果不传入，默认为0-中心存储
//        jsonBody.put("recordLocation", 0);
//        //hik,rtsp,rtmp-beginTime=20190902T100303&endTime=20190902T100400,hls
//        jsonBody.put("protocol", "rtsp");
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);
//        logger.debug("获取手动录像Url请求参数：{} ," +
//                "\n获取手动录像Url响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }

    /**
     * 云台操作
     * 根据监控点编号进行云台操作接口
     * 综合安防管理平台iSecure Center V1.0及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @param action          0-开始 ，1-停止 注：GOTO_PRESET命令下填任意值均可转到预置点,建议填0即可
     * @param command         不区分大小写,说明：
     *                        LEFT 左转
     *                        RIGHT右转
     *                        UP 上转
     *                        DOWN 下转
     *                        ZOOM_IN 焦距变大
     *                        ZOOM_OUT 焦距变小
     *                        LEFT_UP 左上
     *                        LEFT_DOWN 左下
     *                        RIGHT_UP 右上
     *                        RIGHT_DOWN 右下
     *                        FOCUS_NEAR 焦点前移
     *                        FOCUS_FAR 焦点后移
     *                        IRIS_ENLARGE 光圈扩大
     *                        IRIS_REDUCE 光圈缩小
     *                        WIPER_SWITCH 接通雨刷开关
     *                        START_RECORD_TRACK 开始记录轨迹
     *                        STOP_RECORD_TRACK 停止记录轨迹
     *                        START_TRACK 开始轨迹
     *                        STOP_TRACK 停止轨迹；
     *                        以下命令presetIndex不可为空：
     *                        GOTO_PRESET到预置点
     * @param speed           云台速度，取值范围为1-100，默认50
     * @param presetIndex     预置点编号，可通过查询预置点信息接口获取整数，通常在300以内
     * @return 查询结果
     */
//    public static JSONObject controlling(String cameraIndexCode, Integer action, String command, Integer speed, Integer presetIndex) {
//        final String catchImageApi = ARTEMIS_PATH + CONTROL_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, catchImageApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        jsonBody.put("action", action);
//        jsonBody.put("command", command);
//        if (speed != null) {
//            jsonBody.put("speed", speed);
//        }
//        if (presetIndex != null) {
//            jsonBody.put("presetIndex", presetIndex);
//        }
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("云台操作请求参数：{} ," +
//                "\n云台操作响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }

    /**
     * 3D放大
     * 该接口用于控制监控点进行3D电子放大。
     * 综合安防管理平台iSecure Center V1.2及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @param startX          开始放大的X坐标，范围：0-255。由于设备比例限制，以及实际场景屏幕比例大小不同，请按照如下坐标位计算方式计算入参：屏幕X坐标/屏幕宽 * 255，即该坐标位X坐标占总屏幕宽的比例*255。监控点会对startX、startY、endX 、endY四点围成的区域进行放大。
     * @param startY          开始放大的Y坐标，范围：0-255，由于设备比例限制，以及实际场景屏幕比例大小不同，请按照如下坐标位计算方式计算入参：屏幕Y坐标/屏幕高 * 255，即该坐标位Y坐标占总屏幕高的比例*255。监控点会对startX、startY、endX 、endY四点围成的区域进行放大。
     * @param endX            结束放大的X坐标，范围以及计算方式同startX
     * @param endY            结束放大的Y坐标，范围以及计算方式同startY
     * @return 查询结果
     */
    public static JSONObject selZoom(String cameraIndexCode, Integer startX, Integer startY, Integer endX, Integer endY) {
        final String catchImageApi = ARTEMIS_PATH + SEL_ZOOM_URL;
        // 根据现场环境部署确认是http还是https
        Map<String, String> path = Maps.newHashMap();
        path.put(HTTPS_TYPE, catchImageApi);

        JSONObject jsonBody = new JSONObject();
        jsonBody.put("cameraIndexCode", cameraIndexCode);
        jsonBody.put("startX", startX);
        jsonBody.put("startY", startY);
        jsonBody.put("endX", endX);
        jsonBody.put("endY", endY);
        String body = jsonBody.toJSONString();
        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
        logger.debug("3D放大请求参数：{} ," +
                "\n3D放大响应结果：{}", body, response);
        JSONObject result = JSON.parseObject(response);
        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
            result.put("success", true);
            return result;
        }
        result.put("success", false);
        return result;
    }

    /**
     * 设置预置点信息
     * 该接口用于设置监控点的预置点信息，若参数传已经存在的预置点编号，则可修改预置点信息
     * 综合安防管理平台iSecure Center V1.2及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @param presetName      预置点名称
     * @param presetIndex     预置点编号(1 - 300)
     * @return 调用结果
     * @throws Exception 抛出异常
     */
//    public static JSONObject presetsAddition(String cameraIndexCode, String presetName, Integer presetIndex) {
//        final String catchImageApi = ARTEMIS_PATH + PRESETS_ADDITION_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, catchImageApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        jsonBody.put("presetName", presetName);
//        jsonBody.put("presetIndex", presetIndex);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("设置预置点信息请求参数：{} ," +
//                "\n设置预置点信息响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }

    /**
     * 查询预置点信息
     * 该接口用于查询监控点的预置点信息。
     * 综合安防管理平台iSecure Center V1.2及以上版本
     *
     * @param cameraIndexCode 监控点唯一标识
     * @return 调用结果
     */
//    public static JSONObject presetsSearches(String cameraIndexCode) {
//        final String catchImageApi = ARTEMIS_PATH + PRESETS_SEARCHES_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, catchImageApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("查询预置点信息请求参数：{} ," +
//                "\n查询预置点信息响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }

//    /**
//     * 删除预置点信息
//     * 该接口用于删除监控点的预置点信息。
//     * 综合安防管理平台iSecure Center V1.2及以上版本
//     *
//     * @param cameraIndexCode 监控点唯一标识
//     * @param presetIndex     预置点编号
//     * @return 调用结果
//     */
//    public static JSONObject presetsDeletion(String cameraIndexCode, Integer presetIndex) {
//        final String catchImageApi = ARTEMIS_PATH + PRESETS_DELETION_URL;
//        // 根据现场环境部署确认是http还是https
//        Map<String, String> path = Maps.newHashMap();
//        path.put(HTTPS_TYPE, catchImageApi);
//
//        JSONObject jsonBody = new JSONObject();
//        jsonBody.put("cameraIndexCode", cameraIndexCode);
//        jsonBody.put("presetIndex", presetIndex);
//        String body = jsonBody.toJSONString();
//        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, CONTENT_TYPE, null);
//        logger.debug("删除预置点信息请求参数：{} ," +
//                "\n删除预置点信息响应结果：{}", body, response);
//        JSONObject result = JSON.parseObject(response);
//        if (Constants.SUCCESS_CODE.equals(result.getString(Constants.CODE))) {
//            result.put("success", true);
//            return result;
//        }
//        result.put("success", false);
//        return result;
//    }

//    /**
//     * 获取监控点在线状态接口
//     * @param camerasList
//     * @param size
//     * @return
//     */
//    public static List<OnlineBean> getCameraStatus(String[] camerasList,int size){
//        Map<String, String> onlinePath = new HashMap<String, String>(2) {
//            {
//                put("https://", onLineURLsApi);//根据现场环境部署确认是http还是https
//            }
//        };
//        JSONObject onLineParam = new JSONObject();
//        onLineParam.put("pageNo",1);
//        onLineParam.put("pageSize",size);
//        onLineParam.put("indexCodes",camerasList);
//
//        String result2 = ArtemisHttpUtil.doPostStringArtemis(onlinePath, onLineParam.toString(), null, null, CONTENT_TYPE , null);
//        JSONObject result2Json = JSON.parseObject(result2);
//
//        JSONObject data2Json = result2Json.getJSONObject("data");
//        JSONArray list2 = data2Json.getJSONArray("list");
//        List<OnlineBean> onlineBeans = list2.toJavaList(OnlineBean.class);
//
//        return onlineBeans;
//    }

    public static String getCameraInfo(String cameraIndexCode){
        Map<String, String> onlinePath = new HashMap<String, String>(2) {
            {
                put("https://", cameraURLsApi);//根据现场环境部署确认是http还是https
            }
        };
        JSONObject onLineParam = new JSONObject();
        onLineParam.put("cameraIndexCode",cameraIndexCode);

        String result2 = ArtemisHttpUtil.doPostStringArtemis(onlinePath, onLineParam.toString(), null, null, CONTENT_TYPE , null);
        JSONObject result2Json = JSON.parseObject(result2);

        JSONObject data2Json = result2Json.getJSONObject("data");

        return JSON.toJSONString(data2Json);
    }

    /**
     * 	云台跳转
     *	综合安防管理平台iSecure Center V1.0及以上版本
     *	<p>https://open.hikvision.com/docs/8530061f19534a9993e2afeb70e7c96a#e30b9484</p>
     *	@param cameraIndexCode 监控点唯一标识
     *	@param speed 台速度，取值范围为1-100，默认50
     *	@param cameraIndexCode 监控点编号
     *	@param presetIndex 预置点编号，可通过查询预置点信息接口获取整数，通常在300以内
     * 	@return
     * @throws Exception
     */
    public static JSONObject videoController(String cameraIndexCode,String command,Integer speed,String presetIndex,Integer action)  {
        final String goToPresetApi = ARTEMIS_PATH +"/api/video/v1/ptzs/controlling";
        Map<String, String> path = new HashMap<String, String>(2) {
            {
                put("https://", goToPresetApi);
            }
        };

        String contentType = "application/json";
        JSONObject jsonBody = new JSONObject();
        jsonBody.put("cameraIndexCode", cameraIndexCode);
        jsonBody.put("action", action);
        jsonBody.put("command", command);
        if(speed==null) {
            speed = 50;
        }
        jsonBody.put("speed", speed);
        jsonBody.put("presetIndex", presetIndex);
        String body = jsonBody.toJSONString();
        String response = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null);//
        logger.debug("跳转到监控点请求参数:\t" + body + "\n跳转到监控点响应结果：\t" + response);
        JSONObject result = JSON.parseObject(response);
        if("0".equals(result.getString("code"))) {
            result.put("success", true);
            return result;
        }
        result.put("success", false);
        return result;
    }


    public static void main(String[] args) {
        //  System.out.println(callPostStringApi());
        //  System.out.println("===:"+getCameraInfo("5dadcc624c454be1a280c39fc18f043a"));

        // String StringeResult = signInfo();
//        String imageUrl = "http://192.168.100.22:6120/pic?=d08ie912iace=o90-bp511az8e*fs2i6493428660e2=t1i9m*dp=*3pdi=*1sdi=*5b2i36bee5757d=a0--872e67*l194od1-651025d8";
//        String picUrl =  "/" + imageUrl.split("/")[3];
//        System.out.println(picUrl);
//        String StringeResult = imgUrl("64bba8f5-c381-48b3-9b23-749f28885909",
//                "/pic?=d08ie912iace=o90-bp511az8e*fs2i6493428660e2=t1i9m*dp=*3pdi=*1sdi=*5b2i36bee5757d=a0--872e67*l194od1-651025d8");
//		System.out.println("StringeResult结果示例: "+StringeResult);
        // callPostImgStringApi();
        //    String jsonstr = "{\"code\":\"0\",\"msg\":\"success\",\"data\":{\"total\":26,\"pageNo\":1,\"pageSize\":100,\"list\":[{\"altitude\":null,\"cameraIndexCode\":\"1c14df35daa449bf8a34c28d0e1ffabd\",\"cameraName\":\"蓝湾test\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,remote_vss,event_vss,vss,record,ptz,net,maintenance,status\",\"capabilitySetName\":\"IO能力,视频设备远程获取能力,视频事件能力,视频能力,录像能力,云台能力,网络参数配置能力,设备维护能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-21T11:43:49.672+08:00\",\"encodeDevIndexCode\":\"835163c8ba454b7cb9cd2544bc1ee39a\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000026\",\"installLocation\":\"\",\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":null,\"recordLocationName\":null,\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-21T14:46:53.107+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"9f471a45013e4e06873f58b8539a0347\",\"cameraName\":\"test\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,remote_vss,event_vss,vss,record,ptz,net,maintenance,status\",\"capabilitySetName\":\"IO能力,视频设备远程获取能力,视频事件能力,视频能力,录像能力,云台能力,网络参数配置能力,设备维护能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-19T12:23:33.703+08:00\",\"encodeDevIndexCode\":\"a529d4b439b648dba9dcd438861abffc\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000025\",\"installLocation\":\"\",\"keyBoardCode\":null,\"latitude\":\"\",\"longitude\":\"\",\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":null,\"recordLocationName\":null,\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-21T14:47:24.797+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"da7c22239c97411282570849c9fc4c74\",\"cameraName\":\"岭前头村\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"event_audio,motiontrack,io,event_gis,event_rule,gis,event_ias,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"音频事件能力,自动跟踪能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T15:48:06.610+08:00\",\"encodeDevIndexCode\":\"0d88a7eeada846698537318abddcd46f\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000024\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.215+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"66a1232da34e4767a167c923c1dc59fb\",\"cameraName\":\"万达维湾东南\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"event_audio,motiontrack,io,event_gis,event_rule,gis,event_ias,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"音频事件能力,自动跟踪能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:11:23.389+08:00\",\"encodeDevIndexCode\":\"6146a7c85f24440198752a1f26d1a996\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000023\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.456+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"2fc59c6955e34a10a322935773381084\",\"cameraName\":\"张托村\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"event_audio,motiontrack,io,event_gis,event_rule,gis,event_ias,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"音频事件能力,自动跟踪能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:10:48.409+08:00\",\"encodeDevIndexCode\":\"071813d4b72d4bcaa74709fdca8a42b6\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000022\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.593+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"2befe46315a843d39141a127f906a909\",\"cameraName\":\"陈家贡大桥 01\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,event_face,event_gis,event_rule,gis,event_ias,face,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"IO能力,人脸事件能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,人脸识别能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:08:50.645+08:00\",\"encodeDevIndexCode\":\"71d980f084214e688d98d0801ce0a05f\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000021\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.975+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"ebf3f1e476d641e69f7528ef5152ef40\",\"cameraName\":\"陈家贡大桥02\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,event_face,event_gis,event_rule,gis,event_ias,face,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"IO能力,人脸事件能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,人脸识别能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"2\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:08:50.645+08:00\",\"encodeDevIndexCode\":\"71d980f084214e688d98d0801ce0a05f\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000020\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.012+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"b2eb5b869d354db5979c47a589d803dd\",\"cameraName\":\"积米崖 01\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"manualtrack,event_audio,io,event_gis,event_rule,gis,event_heat,event_vss,record,vss,ptz,event_io,net,event_real_time_thermometry,maintenance,event_device,status\",\"capabilitySetName\":\"手动跟踪能力,音频事件能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,热成像事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,实时测温事件能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:06:01.488+08:00\",\"encodeDevIndexCode\":\"de57ebfabf204c18b0ae9fe443b60073\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000019\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.565+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"6d69d98d3fd746518e6d41db3c53d33a\",\"cameraName\":\"积米崖 02\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"manualtrack,event_audio,io,event_gis,event_rule,gis,event_heat,event_vss,record,vss,ptz,event_io,net,event_real_time_thermometry,maintenance,event_device,status\",\"capabilitySetName\":\"手动跟踪能力,音频事件能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,热成像事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,实时测温事件能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"2\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:06:01.490+08:00\",\"encodeDevIndexCode\":\"de57ebfabf204c18b0ae9fe443b60073\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000018\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.637+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"2c2bb022b76941cd89a77017d746b004\",\"cameraName\":\"西杨家洼 01\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,event_face,event_gis,event_rule,gis,event_ias,face,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"IO能力,人脸事件能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,人脸识别能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:10:07.693+08:00\",\"encodeDevIndexCode\":\"89277e1ff5464a608c1f22a349067898\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000017\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.693+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"5e8d65c89e5645ea89369c2993ec96e1\",\"cameraName\":\"西杨家洼 02\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,event_face,event_gis,event_rule,gis,event_ias,face,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"IO能力,人脸事件能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,人脸识别能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"2\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:10:07.695+08:00\",\"encodeDevIndexCode\":\"89277e1ff5464a608c1f22a349067898\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000016\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.726+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"f20b9a15035c458eb41b8a9a9cb1da35\",\"cameraName\":\"跨海大桥\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"event_audio,motiontrack,io,event_gis,event_rule,gis,event_ias,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"音频事件能力,自动跟踪能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:12:04.354+08:00\",\"encodeDevIndexCode\":\"d0628f35db8d4c0b9f75d0ba35524d21\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000015\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.344+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"52f8edd67f00492399be1fc289eef7da\",\"cameraName\":\"胡家山 01\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"manualtrack,event_audio,io,event_gis,event_rule,gis,event_heat,event_vss,record,vss,ptz,event_io,net,event_real_time_thermometry,maintenance,event_device,status\",\"capabilitySetName\":\"手动跟踪能力,音频事件能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,热成像事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,实时测温事件能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:07:02.222+08:00\",\"encodeDevIndexCode\":\"9b3eb53f22d9458a83c3885f0a23c459\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000014\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.361+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"2b068286a653476f9fb1dfeaef11e109\",\"cameraName\":\"胡家山  02\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"manualtrack,event_audio,io,event_gis,event_rule,gis,event_heat,event_vss,record,vss,ptz,event_io,net,event_real_time_thermometry,maintenance,event_device,status\",\"capabilitySetName\":\"手动跟踪能力,音频事件能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,热成像事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,实时测温事件能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"2\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:07:02.224+08:00\",\"encodeDevIndexCode\":\"9b3eb53f22d9458a83c3885f0a23c459\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000013\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.430+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"63950ef4abbf46dd8b8646111b6cf3ed\",\"cameraName\":\"上戏东 01\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"manualtrack,event_audio,io,event_gis,event_rule,gis,event_heat,event_vss,record,vss,ptz,event_io,net,event_real_time_thermometry,maintenance,event_device,status\",\"capabilitySetName\":\"手动跟踪能力,音频事件能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,热成像事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,实时测温事件能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:07:40.749+08:00\",\"encodeDevIndexCode\":\"cdeb9164940f4a3c81d45b5cc9c1e6d9\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000012\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.159+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"a65565df7c6c4556bd365d8adaa5dd83\",\"cameraName\":\"上戏东 02\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"manualtrack,event_audio,io,event_gis,event_rule,gis,event_heat,event_vss,record,vss,ptz,event_io,net,event_real_time_thermometry,maintenance,event_device,status\",\"capabilitySetName\":\"手动跟踪能力,音频事件能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,热成像事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,实时测温事件能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"2\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:07:40.803+08:00\",\"encodeDevIndexCode\":\"cdeb9164940f4a3c81d45b5cc9c1e6d9\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000011\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.224+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"328c9d58b31a405a8ce189cc61fe4fc6\",\"cameraName\":\"爱琴海 01\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,event_face,event_gis,event_rule,gis,event_ias,face,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"IO能力,人脸事件能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,人脸识别能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:09:18.941+08:00\",\"encodeDevIndexCode\":\"d0e4c74338454a9b99c324643c119d05\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000010\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.838+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"dca7c29cfc9e43f1b5f40c6b92405b27\",\"cameraName\":\"爱琴海 02\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,event_face,event_gis,event_rule,gis,event_ias,face,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"IO能力,人脸事件能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,人脸识别能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"2\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-12T11:09:18.943+08:00\",\"encodeDevIndexCode\":\"d0e4c74338454a9b99c324643c119d05\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000009\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:01.868+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"11902fe0bc43431eb07530903460e7db\",\"cameraName\":\"琴岛之眼\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"event_audio,motiontrack,io,event_gis,event_rule,gis,event_ias,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"音频事件能力,自动跟踪能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-09T15:18:57.498+08:00\",\"encodeDevIndexCode\":\"f9018b010d5140b4ac1ae1fa76f06d93\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000008\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.853+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"4637b2e263a2409a9682a35e9df77c81\",\"cameraName\":\"王台铲尖村东北\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"event_audio,motiontrack,io,event_gis,event_rule,gis,event_ias,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"音频事件能力,自动跟踪能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-09T15:20:16.450+08:00\",\"encodeDevIndexCode\":\"51a66e215c4f49cea6e65a9b72f38618\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000007\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.753+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"a411dd3c829047b6b49d70d65428e439\",\"cameraName\":\"欢乐海湾 01\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,event_gis,gis,event_ias,face,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status,event_face,event_rule\",\"capabilitySetName\":\"IO能力,可视域事件能力,可视域能力,入侵报警事件能力,人脸识别能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力,人脸事件能力,行为分析事件能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-09T15:17:57.610+08:00\",\"encodeDevIndexCode\":\"13881aa4a2a24e328033f19dd7323f1c\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000006\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:02.965+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"8c1954b15bfd4b00a4de219ad7afb1dc\",\"cameraName\":\"欢乐海湾 02\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"io,event_gis,gis,event_ias,face,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status,event_face,event_rule\",\"capabilitySetName\":\"IO能力,可视域事件能力,可视域能力,入侵报警事件能力,人脸识别能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力,人脸事件能力,行为分析事件能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"2\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-09T15:17:57.612+08:00\",\"encodeDevIndexCode\":\"13881aa4a2a24e328033f19dd7323f1c\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000005\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:03.000+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"08e707b1446d4dafa83a23cf2b682ddf\",\"cameraName\":\"保利海上罗兰南\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"event_audio,motiontrack,io,event_gis,event_rule,gis,event_ias,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status\",\"capabilitySetName\":\"音频事件能力,自动跟踪能力,IO能力,可视域事件能力,行为分析事件能力,可视域能力,入侵报警事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-09T14:55:02.064+08:00\",\"encodeDevIndexCode\":\"5843ee94013d446ab4be58afe2df951f\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000004\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:03.106+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"295fbd04c7494a85b01214a612de8782\",\"cameraName\":\"星光岛一号桥\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"event_audio,motiontrack,io,event_gis,gis,event_ias,event_vss,record,vss,ptz,event_io,net,maintenance,event_device,status,event_rule\",\"capabilitySetName\":\"音频事件能力,自动跟踪能力,IO能力,可视域事件能力,可视域能力,入侵报警事件能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,设备维护能力,设备事件能力,状态能力,行为分析事件能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-09T14:44:26.978+08:00\",\"encodeDevIndexCode\":\"28817e4d0abb4a8e8a42ad1c4d3f0856\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000003\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:03.221+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"4030e6e41dae44c1a56abcb018046d56\",\"cameraName\":\"望海宾馆 01\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"manualtrack,event_audio,io,event_gis,gis,event_vss,record,vss,ptz,event_io,net,event_real_time_thermometry,maintenance,event_device,status,event_rule,event_heat\",\"capabilitySetName\":\"手动跟踪能力,音频事件能力,IO能力,可视域事件能力,可视域能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,实时测温事件能力,设备维护能力,设备事件能力,状态能力,行为分析事件能力,热成像事件能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"1\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-09T14:41:29.690+08:00\",\"encodeDevIndexCode\":\"d60de69b808742308e2314a2967fcbfe\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000002\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:03.375+08:00\"},{\"altitude\":null,\"cameraIndexCode\":\"cb6511ef7eb04c37948ab7de7f2925d1\",\"cameraName\":\"望海宾馆 02\",\"cameraType\":0,\"cameraTypeName\":\"枪机\",\"capabilitySet\":\"manualtrack,event_audio,io,event_gis,gis,event_vss,record,vss,ptz,event_io,net,event_real_time_thermometry,maintenance,event_device,status,event_rule,event_heat\",\"capabilitySetName\":\"手动跟踪能力,音频事件能力,IO能力,可视域事件能力,可视域能力,视频事件能力,录像能力,视频能力,云台能力,IO事件能力,网络参数配置能力,实时测温事件能力,设备维护能力,设备事件能力,状态能力,行为分析事件能力,热成像事件能力\",\"intelligentSet\":null,\"intelligentSetName\":null,\"channelNo\":\"2\",\"channelType\":\"analog\",\"channelTypeName\":\"模拟通道\",\"createTime\":\"2020-10-09T14:41:29.698+08:00\",\"encodeDevIndexCode\":\"d60de69b808742308e2314a2967fcbfe\",\"encodeDevResourceType\":null,\"encodeDevResourceTypeName\":null,\"gbIndexCode\":\"37021110581314000001\",\"installLocation\":null,\"keyBoardCode\":null,\"latitude\":null,\"longitude\":null,\"pixel\":null,\"ptz\":null,\"ptzName\":null,\"ptzController\":null,\"ptzControllerName\":null,\"recordLocation\":\"0\",\"recordLocationName\":\"中心存储\",\"regionIndexCode\":\"a07e9a2c-58c5-4d2d-9d41-94c21bbc9645\",\"status\":null,\"statusName\":null,\"transType\":1,\"transTypeName\":\"TCP\",\"treatyType\":null,\"treatyTypeName\":null,\"viewshed\":null,\"updateTime\":\"2020-10-22T00:00:03.445+08:00\"}]}}";
        //  JSONObject json = JSONObject.parseObject(jsonstr);
        System.out.println(callPostStringApi());
//        System.out.println(getPreviewUrl("4a018f27158b44ecb83682b00b9ec3c3",""));
    }
}
