写了一个可以自动获取登录结果并且自动跳转的脚本解放双手

目录

前言

脚本源码

简单分析


小伙伴们大家好,懒惰使人类进步,用代码解放双手的劳动

前言

对于一个系统正式上线前,会分为好几个环境(开发人员专用,测试人员专用,产品专用等),比如我负责的这个项目,就是分了三个环境,每天来到公司第一件事就是登录页面,进去后打开开发者页面,获取到一个登录成功返回的token,然后拿着这个token拼到开发环境的链接后面才能进入开发环境,乐此不疲(bushi)

感觉也还好不怎么麻烦,但是日复一日略显枯燥,还是交给代码吧。。。来看下效果。脚本很简单,新建一个类,执行main方法即可,点击输出的链接即可登录

脚本源码

java 复制代码
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class DevLink {
    public static void main(String[] args) throws Exception {

        String path = "C:\\Users\\xxx\\Desktop\\链接.txt";
        List<String> http = new ArrayList();
        try {
            Stream<String> lines = Files.lines(Paths.get(path));
            http = lines.filter(e -> e.contains("http"))
                    .collect(Collectors.toList());
        } catch (IOException e) {
            throw new Exception("读取文件出错" + e.getMessage());
        }

        System.out.println("-----------------------------文件读取成功------------------------------------------");

        String url = "https://cloud-test.clinflash.com/api/users/login";
        URL url1 = new URL(url);
        HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection();
        urlConnection.setRequestMethod("POST");
        urlConnection.setRequestProperty("Content-Type", "application/json");
        String requestBody = "{\n" +
                "  \"username\": \"xxx@xxx.com\",\n" +
                "  \"password\": \"xxx.xxx\"\n" +
                "}";
        urlConnection.setDoOutput(true);
        urlConnection.getOutputStream().write(requestBody.getBytes("utf-8"));

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
        String inputLine;
        //获取请求结果
        StringBuffer stringBuffer = new StringBuffer();
        while ((inputLine = bufferedReader.readLine()) != null) {
            stringBuffer.append(inputLine);
        }
        String needUrl = http.get(3);
        System.out.println(s);
        bufferedReader.close();

        System.out.println("response code : " + urlConnection.getResponseCode());
        System.out.println("response body : " + stringBuffer.toString());
        String result = stringBuffer.toString();
        JsonObject jsonObject = new Gson().fromJson(result, JsonObject.class);
        JsonElement jsonElement = jsonObject.getAsJsonObject("data").get("token");
        String token = "";
        if (jsonElement != null) {
            token = jsonElement.getAsString();
        }
        String usefulConn = needUrl + token;
        System.out.println(usefulConn);
    }
}

简单分析

  • 首先读取存放链接的文件,逐行读取,筛选除以自定义规则开头的链接地址
  • 配置需要登录的链接,配置相关参数,请求头等
  • 接收相应参数以及响应结果,需要的token就在响应结果中
  • 将响应结果转换为字符串,然后调整为json格式
  • 获取json格式中的某个字段的值,然后拼到链接后面即可

右键运行,查看控制台,点击输出结果,成功验证token并跳转到页面

好了 文章到这里就结束了


相关推荐
jbtianci40 分钟前
Spring Boot管理用户数据
java·spring boot·后端
Sylvia-girl43 分钟前
线程池~~
java·开发语言
魔力军1 小时前
Rust学习Day3: 3个小demo实现
java·学习·rust
时艰.1 小时前
java性能调优 — 高并发缓存一致性
java·开发语言·缓存
落花流水 丶1 小时前
Java 多线程完全指南
java
jxy99981 小时前
mac mini 安装java JDK 17
java·开发语言·macos
biyezuopinvip1 小时前
基于Spring Boot的企业网盘的设计与实现(毕业论文)
java·spring boot·vue·毕业设计·论文·毕业论文·企业网盘的设计与实现
Hx_Ma161 小时前
SSM搭建(三)Spring整合SpringMVC框架
java·后端·spring
无风听海1 小时前
.NET10之ASP.NET Core的Filter管线
java·asp.net·.net
少许极端1 小时前
算法奇妙屋(二十八)-递归、回溯与剪枝的综合问题 1
java·算法·深度优先·剪枝·回溯·递归