dolphinscheduler 的api 调度使用RestTemplate采用内置用户 调用接口

1. 项目的整体架构

在这里插入图片描述

2. 相当于每次调用接口的时候先登录

 用户登录  -------> 返回获取header 头中获取token  然后在通过token 调用其他接口
 合理的方法是:
   每次登录后将获取到的token 存到redis  中然后其他接口在调用的时候先从redis 获取token(因为token 中有 有效时间的限制) , 如果没有token 的话就 在登录获取token 然后才存入redis中。

    @PostMapping("/getRequestToken")
    public Result getRequestToken() {
        String url = "http://192.168.1.163:12345/dolphinscheduler/login";
        MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
        paramsMap.add("userName","wudl");
        paramsMap.add("userPassword","admin@123");
        ResponseEntity<Result> loginResult = RestTemplateUtils.post(url, paramsMap, Result.class);
        Result body1 = loginResult.getBody();
        System.out.println("abcd==="+loginResult.getHeaders());
        System.out.println("dsfsdfs"+body1.toString());
        System.out.println("11122======"+loginResult.getHeaders().get("Set-Cookie").get(0));
        String abc = body1.getData().toString().split("=")[1];
        System.out.println("sdfsdfs222========"+abc.substring(0,36));

        System.out.println("------------------------------------------------------------------");
        String urltoken = "http://192.168.1.163:12345/dolphinscheduler/projects/test-flink/executors/execute";
        HttpHeaders requestHeaders = new HttpHeaders();

        requestHeaders.add(HttpHeaders.COOKIE,loginResult.getHeaders().get("Set-Cookie").get(0));
        //头部类型
        requestHeaders.add("Content-Type", "application/json");
        //头部类型
        requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

        MultiValueMap<String, Object> requestBody = new LinkedMultiValueMap<>();
        requestBody.add("executeType","REPEAT_RUNNING");
        requestBody.add("processInstanceId",10);
        requestBody.add("projectName","test-flink");

        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestBody, requestHeaders);
        ResponseEntity<Result> resultResponseEntity = RestTemplateUtils.post(urltoken, requestEntity, Result.class,requestBody);
        return resultResponseEntity.getBody();
    }

3. 获取token 的方法

loginResult.getHeaders().get("Set-Cookie").get(0))
在传入headers中就可以了 公共方法在上一篇博客中有。

4.调用接口执行结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值