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;
        }

  • 相关阅读:
    struts的action直接输出中文备注【原创】
    iframe高度处理【原创】
    Gel备注【原创】
    关于用jsp生成xml的问题【原创】
    网上流行的flash切换图片之研究【原创】
    c#连mysql的latin1编码乱码问题
    windows phone 7图片搜索小工具(源码)
    家猫js类库
    理解c#中的readonly,const与enum枚举
    Silverlight 雷达图和一种特殊泡泡画法
  • 原文地址:https://www.cnblogs.com/miaoying/p/9516679.html
Copyright © 2011-2022 走看看