zoukankan      html  css  js  c++  java
  • 【spring】RestTemplate发送请求,请求第三方接口 的几种请求方式POST,GET,DELETE,PUSH

    org.springframework.web.client.RestTemplate

     参考地址:http://www.cnblogs.com/UniqueColor/p/7123347.html

    GitHub源码地址:

    使用示例代码:

    public int doClear(List<CodeChangeOption> typeList, CodeChangeLog codeChangeLog) {
            AdminUser adminUser = AdminUser.createFeignUser("ms-code");
            List<String> scList = codeChangeLog.getScList();
            
            HttpHeaders requestHeaders = new HttpHeaders();
            MediaType contentType = MediaType.parseMediaType("application/json; charset=UTF-8");
            requestHeaders.setContentType(contentType);
            requestHeaders.add("x-admin-info", JSON.toJSONString(adminUser));
            CodeChangeReqBean reqBean = new CodeChangeReqBean();
            reqBean.setScList(scList);
            HttpEntity<String> requestEntity = new HttpEntity<String>(JSON.toJSONString(reqBean), requestHeaders);
            
            JSONObject jsonObj = new JSONObject();
            //失败个数
            int failNum = typeList.size();
            
            for (CodeChangeOption clearType : typeList) {
                String uid = clearType.getUid();
                int reqSuccess = CodeChangeLog.CHANGE_FAIL;
                //发送清除请求
                String url = "http://" + clearType.getAppName() + clearType.getApiPath();
                
                ResponseEntity<String> response = null;
                try {
                    response = lunaRestTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
                    if (response != null && response.getStatusCode() == HttpStatus.OK) {
                        //请求成功
                        String body = response.getBody();
                        JSONObject parseObject = JSON.parseObject(body);
                        if (parseObject.getBoolean("success")) {
                            // type : success
                            failNum--;
                            reqSuccess = CodeChangeLog.CHANGE_SUCCESS;
                        }
                    }
                    
                } catch (Exception e) {
                    e.printStackTrace();
                }
                
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("name", clearType.getName());
                jsonObject.put("success", reqSuccess);
                jsonObj.put(uid, jsonObject);
                
            }
            codeChangeLog.setChangeJsonString(jsonObj.toJSONString());
            if(failNum == 0){
                codeChangeLog.setSuccess(CodeChangeLog.CHANGE_SUCCESS);
            }else{
                codeChangeLog.setSuccess(CodeChangeLog.CHANGE_FAIL);
            }
            //修改日志记录
            return mapper.update(codeChangeLog);
            
        }
    View Code
  • 相关阅读:
    线段树快速查找区间值
    html学习笔记
    区块链是怎么运行的
    【C++ 流类库与输入输出 】实验七
    【C++ 实验六 继承与派生】
    10天冲刺第四天后端app开发
    10天冲刺第三天后端app开发
    10天冲刺第二天之完成后端
    第二次冲刺第一天之后台管理
    第一阶段--冲刺总结
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9764995.html
Copyright © 2011-2022 走看看