1. 设置RestTemplate申请工具

在common文件夹下创立HTTPRequestRes.java(个别通用的工具或办法都创立在海星的common文件夹下)
在该文件内设置RestTemplate申请工具
代码如下:

package com.hikvision.isc.common.utils;import com.hikvision.starfish.core.response.business.BaseResponse;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import com.alibaba.fastjson.JSONObject;import org.springframework.http.*;import org.springframework.stereotype.Component;import org.springframework.util.StringUtils;import org.springframework.web.client.RestTemplate;@Componentpublic class HTTPRequestRes {    private static final Logger logger = LoggerFactory.getLogger(HTTPRequestRes.class);    public static final String ACCEPT = "Accept";    public static final String CONTENT_ENCODING = "Content-Encoding";    public static final String CONTENT_TYPE = "Content-Type";    private static BaseResponse baseResponse = new BaseResponse();    @Autowired    private RestTemplate restTemplate;    public <T> BaseResponse RestTemplate(String userId, String url, HttpMethod httpMethod, Object content, Class<T> t) throws Exception {        if (StringUtils.isEmpty(url)) {            return baseResponse;        }        HttpHeaders headers = getHttpHeaders(userId);        headers.setContentType(MediaType.APPLICATION_JSON);        HttpEntity<Object> entity = new HttpEntity<>(content, headers);        ResponseEntity<String> responseEntity = restTemplate.exchange(url, httpMethod, entity, String.class);        String ret = responseEntity.getBody();        baseResponse = JSONObject.parseObject(ret, BaseResponse.class);        return baseResponse;    }    public static HttpHeaders getHttpHeaders(String userId) {        HttpHeaders headers = new HttpHeaders();        headers.add(ACCEPT, "application/json");        headers.add(CONTENT_ENCODING, "UTF-8");        headers.add(CONTENT_TYPE, "application/json; charset=UTF-8");        headers.add("userId",userId);        return headers;    }}

2. 调用RestTemplate申请工具申请irds组件的相干接口

以irds组件的以下接口为例:

(1)在service.impl文件夹下创立任意文件
在service.impl文件夹下创立MyIrdsService,
在代码中自定义办法,设置参数,通过调用RestTemplate申请办法进行申请

package com.hikvision.isc.module.business.service.impl;import com.alibaba.fastjson.JSONObject;import com.hikvision.isc.common.utils.HTTPRequestRes;import com.hikvision.starfish.core.response.business.BaseResponse;import com.hikvision.starfish.irds.response.PageData;import com.hikvision.starfish.irds.service.IIrdsService;import com.hikvision.starfish.irds.vo.RegionQueryReqVo;import com.hikvision.starfish.irds.vo.RegionVo;import com.hikvision.starfish.irds.vo.SubRegionQueryReqVo;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import com.hikvision.isc.common.errorcode.DefaultErrorCode;import org.springframework.http.HttpMethod;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class MyIrdsService {    private static Logger logger = LoggerFactory.getLogger(MyIrdsService.class);    private static final String IRDS = "irds";    private static final String IRDS_CAMERA_LIST = "/irds/api/v1/camera/advance/cameraList";    @Autowired    private HTTPRequestRes httpRequestRes;    /**依据监控点名称获取列表*/    public BaseResponse queryCameraListByName(String cameraName, String userId){        BaseResponse baseResponse = new BaseResponse();                //拼接残缺的相应接口的残缺申请地址        String url = "http://" + IRDS + "." + IRDS + IRDS_CAMERA_LIST;        try{            //在这里设置接口的申请参数            JSONObject jsonObject = new JSONObject();            jsonObject.put("pageNo", 1);         //起始页            jsonObject.put("pageSize", 1000);   //指定每页的记录数据量大小            jsonObject.put("cameraName", cameraName);  //监控点名称            jsonObject.put("isCascade", 2);     //是否级联, 0:非级联, 1:级联, 2:不限            //userId:用户名  url:接口申请地址  HttpMethod.POST:申请形式(能够为GET、POST、PUT申请等)  jsonObject:申请参数            //调用RestTemplate申请工具,传入相应参数进行申请            baseResponse = httpRequestRes.RestTemplate(userId, url, HttpMethod.POST, jsonObject, JSONObject.class);            return baseResponse;        }catch (Exception e){            baseResponse = exection(url + e.getMessage());            return baseResponse;        }    }    public BaseResponse exection(String message) {        BaseResponse baseResponse = new BaseResponse();        baseResponse.setCode("-1");        baseResponse.setMsg(message);        logger.error("irds拜访失败", message);        return baseResponse;    }}

3. 定义service接口以及接口实现类

在service中定义接口

在接口实现类中重写接口中的办法,调用2中的办法即可

4. 定义controller层

5. 进行测试



调用胜利,胜利从irds组件取得指定的数据