[奶奶看了都会]掘金自动签到-Java版本

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

[奶奶看了都会]掘金自动签到-Java版本_第1张图片

[奶奶看了都会]掘金自动签到-Java版本_第2张图片

但是小卷经常忙的不可开交,以至于想起来到掘金签到的时候,已经过了十多天了,于是准备写个脚本自行签到。看上图的效果,小卷已经连续签到了16天

Cookie的获取

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

[奶奶看了都会]掘金自动签到-Java版本_第3张图片

脚本编写

编写之前需要获取签到接口,和抽奖接口,这里就直接给大家了,不用再自己找了,然后写一个HTTP请求,并设置定时任务,每天定时执行一遍任务就OK了,具体细节看下面的代码

HTTP工具类POST方法

@Slf4j
public class OkHttpUtils {
        //post请求的工具类方法
    public static String post(String url, String cookie, RequestBody requestBody, Map 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 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 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;
    }

到此脚本就写好了,最后效果就留给大家自己去尝试了哦~

你可能感兴趣的:(后端java程序员)