乐趣区

关于后端:奶奶看了都会掘金自动签到Java版本

掘金是稀土上面的一个板块,次要是技术博客网站,每日的主动签到能够拿到矿石,矿石能干嘛呢,当然是换实在的物品啊,如下,小卷感觉 switch 必定是遥遥无期了,只想攒点矿石换个睡枕,让小卷在卷他人的时候还能美美地睡个午觉。

然而小卷常常忙的不可开交,以至于想起来到掘金签到的时候,曾经过了十多天了,于是筹备写个脚本自行签到。看上图的成果,小卷曾经间断签到了 16 天

Cookie 的获取

通过上一篇京东主动签到脚本的阐明 [[奶奶看了都会] 教你用脚本薅京东签到羊毛](https://blog.csdn.net/qq_3662…),签到接口调用都须要用 cookie,掘金网页版上获取 Cookie 非常简单,登录后,轻易试几个点击,间接 copy 对应的 Cookie 就行

脚本编写

编写之前须要获取签到接口,和抽奖接口,这里就间接给大家了,不必再本人找了,而后写一个 HTTP 申请,并设置定时工作,每天定时执行一遍工作就 OK 了,具体细节看上面的代码

HTTP 工具类 POST 办法

@Slf4j
public class OkHttpUtils {
        //post 申请的工具类办法
    public static String post(String url, String cookie, RequestBody requestBody, Map<String, String> header) throws Exception {

        String userAgent = "okhttp/3.12.1;jdmall;android;version/10.3.4;build/92451;";

        OkHttpClient client = new OkHttpClient().newBuilder()
                .build();
        Request request = new Request.Builder()
                .url(url)
                .post(requestBody)
                .headers(Headers.of(header))
                .addHeader("Cookie", cookie)
                .addHeader("User-Agent", userAgent)
                .addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
                .addHeader("Cache-Control", "no-cache")
                .addHeader("connection", "Keep-Alive")
                .addHeader("accept", "*/*")
                .build();

        Response response = client.newCall(request).execute();
        String result = response.body().string();
        log.info("post 申请,result:{}", result);
        return result;
    }
}

主动执行工作脚本,须要的 2 个接口曾经在代码里标注


    /**
     * 掘金主动签到
     *
     * @return
     */
    @Scheduled(cron = "0 0 9 1/1 * ?")
    public String juejinSign() throws Exception {log.info("掘金主动签到开始");
        Map<String, String> header = Maps.newHashMap();
        // 签到工作接口
        String url = "https://api.juejin.cn/growth_api/v1/check_in";
        String juejinCookie = "你的 cookie";
        RequestBody requestBody = new FormBody.Builder().build();
        String response = OkHttpUtils.post(url, juejinCookie, requestBody, header);

        return response;
    }

    /**
     * 掘金主动抽奖
     *
     * @return
     */
    @Scheduled(cron = "0 0 9 1/1 * ?")
    public String juejinDraw() throws Exception {log.info("掘金主动抽奖开始");
        Map<String, String> header = Maps.newHashMap();
        // 抽奖接口
        String drawUrl = "https://api.juejin.cn/growth_api/v1/lottery/draw";
        String juejinCookie = "你的 cookie";
        RequestBody requestBody = new FormBody.Builder().build();
        String response = OkHttpUtils.post(drawUrl, juejinCookie, requestBody, header);
        return response;
    }

到此脚本就写好了,最初成果就留给大家本人去尝试了哦~

退出移动版