当前位置: 首页 > article >正文

对接世邦XC-9000 HTTP

controller

     /**
     * 获取设备信息
     */
    @GetMapping("/sb/dev")
    @ResponseBody
    public R devInfo() {
    	// 世邦ip 端口配置
        DevInfo sb = cfg.getShibang();

        ZoneDevInfoParam zoneterminalParam = new ZoneDevInfoParam();
        zoneterminalParam.setIp(sb.getIp());
        zoneterminalParam.setPort(sb.getPort());
        zoneterminalParam.setGroupName("*");
        ApiZoneDevInfoResult zoneterminalTask = shiBangXC9000ApiService.getZoneterminalTask(zoneterminalParam);
        return R.okData(zoneterminalTask);
    }

serviceImpl

	@Override
    @ContractApiUrl(value = "/php/getzoneterminaldata.php")
    public ApiZoneDevInfoResult getZoneterminalTask(ZoneDevInfoParam param) {
        String url = getPostUrl(ZoneDevInfoParam.class);
        url = URL.replace(IP, param.getIp()).replace(PORT, param.getPort() + "") + url;
        ApiZoneDevInfoResult ret = PostSBReqUtils.Post(url, param, ApiZoneDevInfoResult.class);
        return ret;
    }
/**
     * 获取第三方对接地址
     *
     * @return 请求URL
     */
    private String getPostUrl(Class<?>... parameterTypes) {
        try {
            StackTraceElement[] stack = Thread.currentThread().getStackTrace();
            String methodName = stack[2].getMethodName();
            Method method = this.getClass().getMethod(methodName, parameterTypes);
            ContractApiUrl apiUrl = method.getAnnotation(ContractApiUrl.class);
            if (apiUrl != null) {
                return apiUrl.value();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }

PostSBReqUtils

@Slf4j
@Component
public class PostSBReqUtils {

    public static <T> T Post(String reqPath, Object obj, Class<T> clazz) {
        try {
            T temp = clazz.newInstance();
            String json = getJson(obj);
            Map<String, Object> param = getMapFormJson(json);
            String resp = HttpSBUtil.doPost(reqPath, param);
            System.err.println(reqPath + " === > " + resp);
            T ret = JsonUtil.fromJson(resp, clazz);
            return null == ret ? temp : ret;
        } catch (Exception e) {
            e.printStackTrace();
            log.error("PostItcReqUtils.Post===>" + reqPath + "  " + JsonUtil.toJson(obj));
            return null;
        }
    }

    private static String getJson(Object obj) {
        return JsonUtil.toJson(obj);
    }

    @SuppressWarnings("unchecked")
    private static Map<String, Object> getMapFormJson(String obj) {
        Map<String, Object> param = new HashMap<String, Object>();
        try {
            param = JsonUtil.fromJson(obj, Map.class);
        } catch (Exception e) {
        }
        return param;
    }
}

http://www.kler.cn/a/386486.html

相关文章:

  • RS®SZM 倍频器
  • ❤React-JSX语法认识和使用
  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理
  • 基于matlab的CNN食物识别分类系统,matlab深度学习分类,训练+数据集+界面
  • 5G 现网信令参数学习(3) - RrcSetup(1)
  • Java API类与接口:类的转换方法与正则表达式
  • 数据结构————链表
  • 论文阅读《机器人状态估计中的李群》
  • 理解鸿蒙app 开发中的 context
  • Centos 网络接口打vlan标签
  • 三周精通FastAPI:38 针对不同的编程语言来生成客户端
  • 『事善能』MySQL基础 — 2.MySQL 5.7安装(一)
  • 玩的花,云产品也能拼团了!!!
  • typescript 补充
  • Spring Boot技术在导师双选系统中的应用
  • uniapp中使用全局样式文件引入的三种方式
  • 高德地图通过经纬度查找位置和轨迹回放
  • Uboot移植
  • 题解:AtCoder Beginner Contest AT_abc379_d ABC379D Home Garden
  • SpringBoot在线教育系统:数据分析与报告
  • IO同步异步/阻塞非阻塞
  • Flutter中的Extension关键字
  • 桥接 设计模式 软考
  • BIM 地铁站智能可视化应用
  • 简单介绍Nginx服务器的反向代理、负载均衡
  • 小柯剧场“真人秀”:如何玩转情感与竞技的双重游戏?