• Springboot中RestTemplate的用法


    引入pom依赖

       <!--  RestTemplate  -->

    <dependency>
           <groupId>org.apache.httpcomponents</groupId>
           <artifactId>httpclient</artifactId>
           <version>4.5.10</version>
     </dependency>

    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.60</version>
    </dependency>

    postForObject方法

    1. @Resource
    2. private RestTemplate restTemplate;
    3. //方法中代码
    4. String url = ltUrlProperties.getCalculateUrl();
    5. log.info("返回测算信息url======={}",url);
    6. Map<String, Object> errReturn = new HashMap<>();
    7. errReturn.put("code","500");
    8. errReturn.put("message","测算失败");
    9. errReturn.put("versionNo",versionCodeAndUcode.getVersionCode());
    10. errReturn.put("uniqueId",versionCodeAndUcode.getUniqueId());
    11. JSONObject jsonObject = JSONUtil.parseObj(errReturn);
    12. String jsonStringErr = JSONUtil.toJsonStr(jsonObject);
    13. // String jsonStringErr = JSON.toJSONString(ImmutableMap.of("userId", userId), SerializerFeature.WriteMapNullValue);
    14. log.info("发送给龙头的测算返回信息=========={}",jsonStringErr);
    15. HttpHeaders headersErr = new HttpHeaders();
    16. headersErr.setContentType(MediaType.APPLICATION_JSON_UTF8);
    17. headersErr.add("token", "我是token");
    18. HttpEntity<String> httpEntityErr = new HttpEntity<>(jsonStringErr, headersErr);
    19. String responseErr = this.restTemplate.postForObject(url, httpEntityErr, String.class);
    20. log.info("龙头接收返回信息=========={}",responseErr);

    getForObject方法

    1. @Resource
    2. private RestTemplate restTemplate;
    3. String url = appConfig.getC1tm().getPushToC2()+"f_code="+c1InterfaceApi.getProjectCode()+"&version="+c1InterfaceApi.getVersion();
    4. JSONObject result = this.restTemplate.getForObject(url,JSONObject.class);
    5. log.info("返回数据:{}",result.toString());

    exchange方法之post

    1. Map<String, Object> requestMap = ImmutableMap.of("Parameters", parameters);
    2. String jsonString = JSONObject.toJSONString(requestMap);
    3. String requestURL = url;
    4. log.info("=======调用接口: {}", requestURL);
    5. HttpHeaders headers = new HttpHeaders();
    6. headers.setContentType(MediaType.APPLICATION_JSON);
    7. headers.add("Authorization", "Basic " + encodeBase64String(username, password));
    8. HttpEntity<String> httpEntity = new HttpEntity<>(jsonString, headers);
    9. ResponseEntity<String> responseEntity = this.restTemplate.exchange(requestURL, HttpMethod.POST, httpEntity, String.class);
    10. log.info("=======调用接口response: {}", responseEntity);

    exchange方法之get

    1. StringBuilder strBu = new StringBuilder();
    2. strBu.append("?versionCode=").append(versionCode);
    3. strBu.append("&projectCode=").append(projectCode);
    4. String parseC3ExcelUrl = url;
    5. parseC3ExcelUrl = parseC3ExcelUrl + strBu.toString();
    6. String apiKey = this.config.getZncsConfig().getGaiaApiKey();
    7. HttpHeaders httpHeaders = new HttpHeaders();
    8. httpHeaders.add("X-Gaia-Api-Key",apiKey);
    9. HttpEntity<String> entity = new HttpEntity<>("parameters",httpHeaders);
    10. log.info("接口调用:"+parseC3ExcelUrl+"===="+apiKey);
    11. ResponseEntity<String> responseEntity = restTemplate.exchange(parseC3ExcelUrl, HttpMethod.GET,entity,String.class);
    12. log.info("接口响应:"+responseEntity.getStatusCode() + responseEntity.getBody());

    x-www-form-urlencoded格式请求

    1. String url = this.appConfig.getNcConfig().getTokenUrl();
    2. String clientId = this.appConfig.getNcConfig().getClientId();
    3. String clientSecret = this.appConfig.getNcConfig().getClientSecret();
    4. String token = null;
    5. HttpHeaders headers = new HttpHeaders();
    6. headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    7. MultiValueMap<String, String> param = new LinkedMultiValueMap<>(3);
    8. param.add("client_id", clientId);
    9. param.add("client_secret", clientSecret);
    10. param.add("grant_type", "client_credentials");
    11. HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(param, headers);
    12. String result = restTemplate.postForObject(url, httpEntity, String.class);
    13. if (StringUtils.isNotBlank(result)) {
    14. JSONObject jsonResult = JSONObject.parseObject(result);

  • 相关阅读:
    maven之pom文件详解
    【数据结构】线性表的链式存储结构
    (二)移植FreeRTOS到STM32中
    Jetson Orin Nano 快速安装 ROS2 Foxy详解
    【2022研电赛】安谋科技企业命题一等奖:基于EAIDK-610的中国象棋机器人对弈系统
    CentOS to 浪潮信息 KeyarchOS 迁移体验与优化建议
    AI项目八:yolo5+Deepsort实现目标检测与跟踪(CPU版)
    [centos]centos镜像ISO下载地址
    2022“杭电杯”中国大学生算法设计超级联赛(8)
    Docker从入门到进阶之进阶操作(5) —— 实战演练【nginx负载均衡-轮询】
  • 原文地址:https://blog.csdn.net/LvFengQi/article/details/125543540