zoukankan      html  css  js  c++  java
  • Java方法通过RestTemplate调用restful接口

    背景:项目A需要在代码内部调用项目B的一个restful接口,该接口是POST方式,header中 Authorization为自定义内容,主要传输的内容封装在body中,所以使用到了RestTemplate。

        public String batchInsertData(ImportEntity importEntity, String token) {
    
            HttpHeaders headers = new HttpHeaders();
            MediaType type = MediaType.parseMediaType(MEDIATYPE_JSON_UTF8);
            headers.setContentType(type);
            headers.set("Authorization", token);
    
            HttpEntity<ImportEntity> entity = new HttpEntity<>(importEntity, headers);
            try {
                ResponseEntity<Object> result = restTemplate.exchange(httpsHost + IMPORT_HOSPITALDEPT_DATA, HttpMethod.POST, entity, Object.class);
                if (null != result && result.getStatusCode() == HttpStatus.OK) {
                    if (result.getBody() != null) {
                        LinkedHashMap<String, String> hashMap = (LinkedHashMap<String, String>) result.getBody();
                        return hashMap.getOrDefault("msg", "导入成功!");
                    } else {
                        return StringUtils.EMPTY;
                    }
                }
            } catch (Exception e) {
                LOGGER.error("导入失败!", e);
                return "导入失败!";
            }
            return "导入成功!";
        }

    调用 get 请求:

        private boolean validMessageCode(String validateCode, String phone, String type, boolean invalidWhenVerify) {
            LOG.info("cUserUrl : " + cUserUrl + "; validateCode: " + validateCode +  "; phone: " + phone);
            StringBuilder url = new StringBuilder();
            url.append(cUserUrl).append(VERIFY_MSGCODE)
                    .append(StringPool.QUESTION_MARK)
                    .append("msgCode").append(StringPool.EQUAL_SIGN).append(validateCode).append(StringPool.AND)
                    .append("phone").append(StringPool.EQUAL_SIGN).append(phone).append(StringPool.AND)
                    .append("invalidWhenVerify").append(StringPool.EQUAL_SIGN).append(invalidWhenVerify).append(StringPool.AND)
                    .append("type").append(StringPool.EQUAL_SIGN).append(type);
            String response = restTemplate.exchange(url.toString(), HttpMethod.GET, new HttpEntity<>(new HttpHeaders()), String.class).getBody();
            LOG.info("response : " + response);
            JSONObject jsonObject = JSON.parseObject(response);
            if (StringPool.ZERO != jsonObject.get(StringPool.RET_CODE)) {
                return false;
            }
            return true;
        }

  • 相关阅读:
    C# Excel工作表区域Range装入数组
    【Word VBA】批量插入图片到表格
    C# Office Com 开发 创建任务窗格 CustomTaskPane
    C# Office Com 开发 Excel插件与函数dll注册
    视频逐帧转换为图片
    ssh 免密登录
    NPS 内网穿透配置
    php7.3 centos Call to undefined function AdminControllermcrypt_get_block_size()
    Centos 6 安装 php7.3.x
    nginx配置之proxy_pass路径加斜杠/以及包含路径的区别
  • 原文地址:https://www.cnblogs.com/miaoying/p/9516679.html
Copyright © 2011-2022 走看看