x大x鸟的青鸟云课堂自动答题实现原理

本帖最后由 zhimengya 于 2019-6-16 13:53 编辑

本教程仅供参考学习,如果有违规请管理大大及时删除!!!
我是"x大x鸟"的学员 快毕业了正头疼找工作的事情,没心情维护了,所以把自动答题原理提供给其他学员参考一下
至于"x大x鸟"若侵犯到你的权益了请联系我及时删除 Email:zhimengya_realty@163.com


单纯的来写一个教程,第一次写教程可能会有一些遗漏的后续会补充的


首先我们来看一下原理吧

进入正轨,我是使用spring boot编写的  http请求我用的是自带的HttpURLConnection  工具中有MD5 以及DesUtils 以及两个必调用方法如下:

拼接url方法:[Asm] 纯文本查看 复制代码

  public String buildMap(Map<String, String> map) {        StringBuffer stringBuffer = new StringBuffer();
        if (map.size() > 0) {
            for (String key : map.keySet()) {
                stringBuffer.append(key + "=");

                if (StringUtils.isEmpty(map.get(key))) {
                    stringBuffer.append("&");
                } else {
                    String value = map.get(key);
             
                    stringBuffer.append(value + "&");
                }
            }
        }
      //这里我就没有太多注释了
        return stringBuffer.toString().substring(0, stringBuffer.length() - 1);
}

_yl005_字符串加密方法:这里的两个密文是脱x青鸟云课堂app脱壳来的至于过程我就不详细说明了[Java] 纯文本查看 复制代码

public String getAuthCnParam(boolean isExam, String url) {
        String auto = "";
        String result = "";

        if (url != "" || url != null) {

            if (isExam) {
                result = url + "密文";

            } else {
                result = url + "密文";
            }
//这里两个密文我就不提供了
            try {
                System.out.println(URLDecoder.decode(result, "UTF-8"));
                auto = Md5Utils.md5Encode(URLDecoder.decode(result, "UTF-8"));
                url += "&_yl005_=" + auto;
System.out.println(url);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

        }
        return url;
    }

登录:
我们需要有一个账号(当然这是废话)后台接收到以后进行数据操作处理
[Java] 纯文本查看 复制代码

 public String login(String user, String password) {


        Map<String, String> map = new LinkedHashMap<String, String>();

        map.put("clientType", "009");
        map.put("passport", user);//账号
        map.put("password", Md5Utils.md5Encode(password));//密码
        map.put("version", "Version_1.1.3");
        return httpAndRequests.http_get(urlConstant.LOGIN_SYS //url
                + createUrl.getAuthCnParam(true, //得到_yl005_加密字符串
                   createUrl.buildMap(map//拼接url
                )));
        
//请求登陆   第一部拼接url 第二部得到秘钥

    }

拼出来完整的地址:http://tiku.ekgc.cn/testing/kgc/app/paper/solutions?clientType=009&passport=账号&password=密码=Version_1.1.3&_yl005_=383be7a43cbbdb9c173cbbbcb7008ce8

请求成功:[Java] 纯文本查看 复制代码

{"code":"1","msg":"登录成功!"}

登陆成功:选择课程:
[Java] 纯文本查看 复制代码

//S1课程:
http://tiku.ekgc.cn/testing/exam/app/exam/random?_yl005_=70563abda246fd96cadfa93a37aaaeb4&examType=moni&outlineCode=1022
//S2课程:
http://tiku.ekgc.cn/testing/exam/app/exam/random?_yl005_=d39644455357a329484a111470fa7903&examType=moni&outlineCode=1023
//Y2课程:
http://tiku.ekgc.cn/testing/exam/app/exam/random?_yl005_=41c8636575cc46c3746cc17b4a30d02c&examType=moni&outlineCode=1024

请求:
[Java] 纯文本查看 复制代码

 JSONObject jsStr = JSONObject.parseObject(httpAndRequests.http_get(urls));//请求题目转换成json  

请求完成以后json(比较长):
[Java] 纯文本查看 复制代码

{"paper":{"cPageHead":"针对以下题目,请选择最符合题目要求的答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。每道题2分","sPageHead":null,"isBlock":true,"title":"ACCP8.0版本Y2课程-模拟真题试卷","choiceScore":null,"examBeginTime":null,"examEndTime":null,"totalNum":50,"totalTime":3600,"examType":"moniAuto","outlineCode":"1024","positionId":null,"examSubmitTime":null,"totalScore":0.0,"useTime":null,"skillId":null,"subjectiveScore":null,"pageType":null,"erId":null,"id":53789868  //paperId    },"examResultId":110146928   //examResultId,"code":"1","qcList":"这里就省略了太长了","msg":""}

取json的id  以及 examResultId  拼接请求:   [Java] 纯文本查看 复制代码

          examResultId = jsStr.getString("examResultId");//取json中examResultId
            paperId = jsStr.getJSONObject("paper").getString("id");//取json中paperId
            Map<String, String> map = new LinkedHashMap<String, String>();//new一个map储存参数(方便拼接URL)
            map.put("paperId", paperId);
            map.put("examResultId", examResultId);
            String json = httpAndRequests.http_get(//get请求
                    urlConstant.EXAM_ANSWER_URL//url
                            + createUrl.getAuthCnParam(false,//得到_yl005_加密字符串
                            createUrl.buildMap(map)));//拼接url
            System.out.println(json);

拼接出来url:http://tiku.ekgc.cn/testing/kgc/app/paper/solutions?paperId=53789868&examResultId=110146928&_yl005_=1a2956e16e5719f1e5385462e9490967

得到答案json(太长了省略了一部分)[Java] 纯文本查看 复制代码

{"cqList":"[{\"answers\":\"3\",\"choiceA\":\"采用PropertyPlaceholderConfigurer可以引入属性文件\",\"choiceB\":\"指定属性文件的位置使用location或者locations属性\",\"choiceC\":\"使用${...}获取属性文件中的值\",\"choiceD\":\"使用${...}时括号里面的格式没有要求\",\"collection\":false,\"difficulty\":1,\"id\":9876,\"picurl\":\"\",\"psqId\":1228694256,\"questionIndex\":1,\"questionScore\":2,\"title\":\"lr/LRjU5bJOzkr1h9ff3lPi9Ae71uWkP8K6xPSpu3PBO1NB7uR/P8/xWcOawOyQWwEwGl5T/LmD9\\nvIj0E3hNI/PSuWjj6H4W\",\"type\":1},{\"answers\":\"0,2,3\",\"choiceA\":\"<select id=\\\"queryUser\\\" resultType=\\\"User\\\" parameterType=\\\"User\\\">\\r    SELECT * FROM tb_users t\\r    <where>\\r        <if test=\\\"searchFlag != null and searchFlag =='name'\\\" >\\r            t.user_name = #{userName}\\r        </if>\\r        <else>\\r            t.login_name = #{userName}\\r        </else>\\r    </where> \\r</select>\",\"choiceB\":\"<select id=\\\"queryUser\\\" resultType=\\\"User\\\" parameterType=\\\"User\\\">\\r    SELECT * FROM tb_users t\\r<where>\\r    <choose>\\r            <when test=\\\"searchFlag != null and searchFlag =='name'\\\" >\\r                t.user_name = #{userName}\\r            </when>\\r            <otherwise>\\r                t.login_name = #{userName}\\r            </otherwise>\\r        </choose>\\r    </where> \\r</select>\",\"choiceC\":\"<select id=\\\"queryUser\\\" resultType=\\\"User\\\" parameterType=\\\"User\\\">\\r    SELECT * FROM tb_users t\\r    <where>\\r        <if test=\\\"userAge != null and userAge !=''\\\" >\\r            t.user_age < #{userAge}\\r        </if>\\r    </where> \\r</select>\",\"choiceD\":\"<select id=\\\"queryUser\\\" resultType=\\\"User\\\" parameterType=\\\"string\\\">\\r    SELECT * FROM tb_users t\\r    <where>\\r        <if test=\\\"userAge != null and userAge !=''\\\" >\\r            t.user_id IN (#{ids})\\r        </if>\\r    </where> \\r</select>\",\"collection\":false,\"difficulty\":3,\"id\":9576,\"picurl\":\"\",\"psqId\":1228694258,\"questionIndex\":2,\"questionScore\":2,\"title\":\"zAWBzmEtbtp9EEXcRD8sFbGDxHqYh7XmIbUOsXnQmLRz5t/JKD+MnfpwNlUf17yyaFzDcxFseR4A\\n0POyNuPyQw==\",\"type\":2}]","paper":{"title":"ACCP8.0版本Y2课程-模拟真题试卷","erId":null,"choiceScore":null,"examBeginTime":null,"examEndTime":null,"totalNum":50,"totalTime":3600,"examType":"moniAuto","outlineCode":"1024","positionId":null,"examSubmitTime":null,"totalScore":0.0,"useTime":null,"skillId":null,"subjectiveScore":null,"pageType":null,"cPageHead":"针对以下题目,请选择最符合题目要求的答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。每道题2分","sPageHead":null,"isBlock":true,"id":53789868},"sqList":"[]","code":"1","msg":""}

取答案json里的id questionId uAnswers   以及自带的 position  time 转化成json    [Java] 纯文本查看 复制代码

 JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(json).getString("cqList"));//获取json里cqList转换成List            JSONObject answerjson = new JSONObject();
            Map<String, Map<String, Object>> answer = new LinkedHashMap<>();//拼接答案json
            for (int i = 0; i < jsonArray.size(); i++) {
                Map<String, Object> answermap = new LinkedHashMap<>();
                JSONObject shuju = jsonArray.getJSONObject(i);
                answermap.put("position", i);
                answermap.put("psqId", shuju.getString("psqId"));
                answermap.put("questionId", shuju.getString("id"));
                answermap.put("time", "25");
                answermap.put("uAnswers", shuju.getString("answers"));
                answer.put(shuju.getString("id"), answermap);
         }
                answerjson.toJSONString(answer)

}

:


转化出来的JSON:
[Java] 纯文本查看 复制代码

{"9876":{"position":0,"psqId":"1228694256","questionId":"9876","time":"25","uAnswers":"3"},"9576":{"position":1,"psqId":"1228694258","questionId":"9576","time":"25","uAnswers":"0,2,3"},"16431":{"position":2,"psqId":"1228694260","questionId":"16431","time":"25","uAnswers":"3"},"23362":{"position":3,"psqId":"1228694262","questionId":"23362","time":"25","uAnswers":"0,1"},"27638":{"position":4,"psqId":"1228694264","questionId":"27638","time":"25","uAnswers":"3"},"9772":{"position":5,"psqId":"1228694266","questionId":"9772","time":"25","uAnswers":"0"},"24314":{"position":6,"psqId":"1228694268","questionId":"24314","time":"25","uAnswers":"1,2"},"28726":{"position":7,"psqId":"1228694270","questionId":"28726","time":"25","uAnswers":"3"},"12219":{"position":8,"psqId":"1228694272","questionId":"12219","time":"25","uAnswers":"0,3"},"1277":{"position":9,"psqId":"1228694274","questionId":"1277","time":"25","uAnswers":"1"},"26866":{"position":10,"psqId":"1228694276","questionId":"26866","time":"25","uAnswers":"3"},"4804":{"position":11,"psqId":"1228694278","questionId":"4804","time":"25","uAnswers":"0,3"},"4825":{"position":12,"psqId":"1228694280","questionId":"4825","time":"25","uAnswers":"0,3"},"24398":{"position":13,"psqId":"1228694282","questionId":"24398","time":"25","uAnswers":"2"},"28746":{"position":14,"psqId":"1228694284","questionId":"28746","time":"25","uAnswers":"0,1"},"2259":{"position":15,"psqId":"1228694286","questionId":"2259","time":"25","uAnswers":"0"},"23571":{"position":16,"psqId":"1228694288","questionId":"23571","time":"25","uAnswers":"1"},"2175":{"position":17,"psqId":"1228694290","questionId":"2175","time":"25","uAnswers":"3"},"21819":{"position":18,"psqId":"1228694292","questionId":"21819","time":"25","uAnswers":"0"},"2063":{"position":19,"psqId":"1228694294","questionId":"2063","time":"25","uAnswers":"3"},"23588":{"position":20,"psqId":"1228694296","questionId":"23588","time":"25","uAnswers":"1"},"27637":{"position":21,"psqId":"1228694298","questionId":"27637","time":"25","uAnswers":"3"},"22946":{"position":22,"psqId":"1228694300","questionId":"22946","time":"25","uAnswers":"3"},"2392":{"position":23,"psqId":"1228694302","questionId":"2392","time":"25","uAnswers":"2"},"21687":{"position":24,"psqId":"1228694304","questionId":"21687","time":"25","uAnswers":"2"},"35070":{"position":25,"psqId":"1228694306","questionId":"35070","time":"25","uAnswers":"1"},"38166":{"position":26,"psqId":"1228694308","questionId":"38166","time":"25","uAnswers":"2"},"34107":{"position":27,"psqId":"1228694310","questionId":"34107","time":"25","uAnswers":"2"},"38492":{"position":28,"psqId":"1228694312","questionId":"38492","time":"25","uAnswers":"0"},"35304":{"position":29,"psqId":"1228694314","questionId":"35304","time":"25","uAnswers":"3"},"32631":{"position":30,"psqId":"1228694316","questionId":"32631","time":"25","uAnswers":"0"},"35691":{"position":31,"psqId":"1228694318","questionId":"35691","time":"25","uAnswers":"3"},"38481":{"position":32,"psqId":"1228694320","questionId":"38481","time":"25","uAnswers":"0"},"33742":{"position":33,"psqId":"1228694322","questionId":"33742","time":"25","uAnswers":"0"},"39709":{"position":34,"psqId":"1228694324","questionId":"39709","time":"25","uAnswers":"1"},"32331":{"position":35,"psqId":"1228694326","questionId":"32331","time":"25","uAnswers":"0"},"39616":{"position":36,"psqId":"1228694328","questionId":"39616","time":"25","uAnswers":"2"},"35097":{"position":37,"psqId":"1228694330","questionId":"35097","time":"25","uAnswers":"0"},"41842":{"position":38,"psqId":"1228694332","questionId":"41842","time":"25","uAnswers":"2"},"42259":{"position":39,"psqId":"1228694334","questionId":"42259","time":"25","uAnswers":"3"},"42370":{"position":40,"psqId":"1228694336","questionId":"42370","time":"25","uAnswers":"0,2"},"41884":{"position":41,"psqId":"1228694338","questionId":"41884","time":"25","uAnswers":"2"},"39617":{"position":42,"psqId":"1228694340","questionId":"39617","time":"25","uAnswers":"3"},"34347":{"position":43,"psqId":"1228694342","questionId":"34347","time":"25","uAnswers":"1,2"},"42292":{"position":44,"psqId":"1228694344","questionId":"42292","time":"25","uAnswers":"3"},"38367":{"position":45,"psqId":"1228694346","questionId":"38367","time":"25","uAnswers":"1"},"32324":{"position":46,"psqId":"1228694348","questionId":"32324","time":"25","uAnswers":"1"},"28128":{"position":47,"psqId":"1228694350","questionId":"28128","time":"25","uAnswers":"3"},"6428":{"position":48,"psqId":"1228694352","questionId":"6428","time":"25","uAnswers":"1"},"6452":{"position":49,"psqId":"1228694354","questionId":"6452","time":"25","uAnswers":"2"}}



然后我们这里需要DES对这个json进行加密处理了:
DesUtils工具类(度娘上也有):[Java] 纯文本查看 复制代码

public static String encrypt(final String s) throws Exception {        return encrypt(s, KEY);//这个KEY我就不提供了也是x青鸟云课堂脱壳提取出来的(考虑到一些问题暂时不公布)
    }

    public static String encrypt(final String s, final String s2) throws Exception {
        return Base64.encodeBase64String(encrypt(s.getBytes(StandardCharsets.UTF_8), s2.getBytes()));
    }

    private static byte[] encrypt(final byte[] array, final byte[] array2) throws Exception {
        final SecureRandom secureRandom = new SecureRandom();
        final SecretKey generateSecret = SecretKeyFactory.getInstance(DES).generateSecret(new DESKeySpec(array2));
        final Cipher instance = Cipher.getInstance(DES);
        instance.init(1, generateSecret, secureRandom);
        return instance.doFinal(array);
    }

加密以后:[Java] 纯文本查看 复制代码

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

拼接请求保存答案上去  接口:http://tiku.ekgc.cn/testing/exam/app/question/answerAll:
[Asm] 纯文本查看 复制代码

            Map<String, String> tj = new LinkedHashMap<String, String>();
            tj.put("examResultId", examResultId);
            tj.put("json", URLEncoder.encode//符号转义
                    (desUtils.encrypt//这里是加密
                    (answerjson.toJSONString(answer)), "UTF-8"));
            tj.put("paperId", paperId);
            System.out.println(httpAndRequests.http_post(urlConstant.EXAM_SUBMIT,//请求接口
                    createUrl.getAuthCnParam(true,//得到_yl005_加密字符串
                            createUrl.buildMap(tj))));//拼接

拼接出来 POST请求 url  http://tiku.ekgc.cn/testing/exam/app/question/answerAll   
[Java] 纯文本查看 复制代码

examResultId=110146928&json=nLg%2BH4dQ%2BguPaTCQfM9AHqUBtP6JD4GQrLhXJi%2B%2BhFEBIt1uLCPf4xstc9VkslUHTi9FLtezlHd8IVLhj4sirWn74mCU%2FmdlZ7nvdloPajLiplm55VobO%2Bha0NuAIDtp%2B2w6vThkiGEU3U5gn6c25O0bQcSbFny5QpTx%2B1c5vTDzChLetCXkQDM12Fg0gf5Bq%2FBu2oYYhU3N6TER3cQWslfYmNRZ1M7PsOkc7S3F3ULxobML0%2FUx09cLqSYhog6KXMUifIRxLFSOZBW%2B976%2BeZw7Zjsd8YuwYyRcPQ6Jet6Tn4Gw48qODHepnsEmzvuAL3tHgoj2ak%2FN6TER3cQWslfYmNRZ1M7PsOkc7S3F3UIVV%2Bq6X%2BS%2FygQyjhIT%2B1j3EcZDfbvCjwp7SV6H9%2FCBnlhejG7JErzCfJG2EsGOC9mZKjrcq%2BMfdqXoSiuwSoduVo2kFyA3uJIxSTvTFXqM%2BSx9vL7qzNMBEQnv0aXmBP5tG2pJUPLy9Vkn%2BUyx%2FzOY016NsGXsGlUnDOdgieNbbrgnjFfr1%2BslgDKDMK54OK4GAcTcSOGPjw2fKMFTRy%2B4iS69rl747xrkD7%2FL46QZMzYVHm%2B6bpiGGHMvgTp25b%2FlyN3F1hw1AJ0LNHoeDozpemE27uoJiAc6sfWP%2B1S8OUslfrBPDgPJHLKkZSrAjictCuiQ6vX9nXO%2Bb%2B%2FySCt1MUk70xV6jPksfby%2B6szTAZv2G5ye6s4VD96pwXaIX0BcxSJ8hHEsVCQW32KFHwaxnDtmOx3xi7BjJFw9Dol63kggsmOcbnsrd6mewSbO%2B4BSRjF8tq1%2BTM3pMRHdxBayV9iY1FnUzs%2Bw6RztLcXdQmYMq%2BCUciTIm6%2BThcpt%2FKT9aoUAkUfPnShibBDLA79nTrr4hCtNgSV9ubhy93pD4aWqkHxk0uCtIYsEg05BMaNswgti0bPgwmn74mCU%2FmdlZ7nvdloPajLiplm55VobO4%2FlvpCrmgRXqekjcoHHFiRq1Le2a%2Bx5ZCcM52CJ41tuuCeMV%2BvX6yXQTCN%2F%2FBQkWwYBxNxI4Y%2BPPJ42X%2BDKzHrQ%2B8R4Gj6cDuQPv8vjpBkzNhUeb7pumIb%2FXDvFQaVua9v7ru6alotHj2kwkHzPQB5VIVtIR8Ctxqy4VyYvvoRRwGps%2BWWIKwXLPsvj5%2BHPak4vRS7Xs5R3GlaXdNBpdwtp%2B%2BJglP5nZWe573ZaD2oyCND33J88yw3BXtVBu3Rj9yzy8IgClU7tAJVlC3uoqFRT4RvZ2nMg1nxHeoLW4wlz0qjqq65KfbWZg0lmGAMN1rQGBo%2F6nmqGwvPrbpPFQkVX9dquGHQcWFI1QuBuIo3zfPZQybW0Jamv0G2S0pMWZ%2F1qhQCRR8%2BdH9hyb5xedMqsuFcmL76EUcBqbPlliCsFVnIitbS8QylOL0Uu17OUd50HCxBIPwF%2BafviYJT%2BZ2Vnue92Wg9qMmx2X8pWT2EsXjHieAx%2FQsjGxXIVEj2n4%2Fvj1rOWUWxSxArckpG6XShYXoxuyRK8wuqsRYF6XkXemSo63KvjH3bxxDKCSONhTfG6gVwiE0leV%2FXarhh0HFhSNULgbiKN8wK34li%2FH%2FK6xNOJJmzPp%2BT7bDq9OGSIYZx2cdFPEOFeJwznYInjW264J4xX69frJTUalo%2F9G9duBgHE3Ejhj49ax24JtLRUCYkuva5e%2BO8a5A%2B%2Fy%2BOkGTM2FR5vum6YhjQ%2FoPHs6IJ2yV0ACwmd1kL9aoUAkUfPnX7G6K3MR%2FXrrLhXJi%2B%2BhFHXQTUDdlDdc8s%2By%2BPn4c9qTi9FLtezlHfAbvTFq2p6L1%2BLbUitklcaF9%2FSEKG4n5Q6HrZUcQRukHbnEBdxSNqF%2FFMf1Hc1Z2YRxkN9u8KPCnvc9VH8vuIfOrH1j%2FtUvDlSxi2Mj4TgqxyypGUqwI4nhpwK9z6XfPScyao6GA7W5DFJO9MVeoz5LH28vurM0wGb9hucnurOFU0ZZd01wwQUXMUifIRxLFRvunzcEZyw%2FO0bQcSbFny5QpTx%2B1c5vTDgb9Jm8l%2BxwzM12Fg0gf5B5UqxX5m2M9BQLDNPWC%2BwNeriqiA%2BXyFTi0WVBMA6C2Z6sNvxgWaV%2F3bFFjKJUfibEcZDfbvCjwokAcixJ4O7JDqx9Y%2F7VLw5vaLV994xpcscsqRlKsCOJ4acCvc%2Bl3z0zKqrrRbWMnIxSTvTFXqM%2BSx9vL7qzNMB3Bn%2BJqFLLyh%2FVgi6GHRlHFzFInyEcSxU3vegXZWkpzntG0HEmxZ8uUKU8ftXOb0wcCfiA5dY%2Bo8zNdhYNIH%2BQSM41e4LdUJWUCwzT1gvsDXq4qogPl8hU4tFlQTAOgtmOMSXv%2F2hb%2F2XUNBNY7gfjBHGQ327wo8KaQPTOxbDKD46sfWP%2B1S8OQSms9zMdAydHLKkZSrAjieGnAr3Ppd89NIBhprDIAi8MUk70xV6jPksfby%2B6szTAdwZ%2FiahSy8oYhf3ugMFWJ9cxSJ8hHEsVM65tIyk%2BUHd7RtBxJsWfLlClPH7Vzm9MEX%2FtWYeZ60EMzXYWDSB%2FkFJ6DDF9TkbmFAsM09YL7A16uKqID5fIVOLRZUEwDoLZnqw2%2FGBZpX%2F4FemwTHiLVWdCzR6Hg6M6fVBTJ0l6f32Trr4hCtNgSXRJzqyr4LxRaWqkHxk0uCtIYsEg05BMaNuMbBITlS0umn74mCU%2FmdlZ7nvdloPajLiplm55VobO7KCo7VcsAu6LPLwiAKVTu3NPuCa6ZOSJtWiKraC34gyfEd6gtbjCXMddHDXFVdv8pmDSWYYAw3W64CjuLwDadxX9Lnw%2BPfmaFf12q4YdBxYUjVC4G4ijfN89lDJtbQlqaPy3E7Q34rS%2FWqFAJFHz50ULqcymr4gc6y4VyYvvoRROFpL60Dhhdup4ZGR0oVMh04vRS7Xs5R30QVfbxGQJ0lp%2B%2BJglP5nZWe573ZaD2oyGxI7LVfBhHPWgQdoBVs2fxW%2BF97o69yDzT7gmumTkibDEYDKeJBglnxHeoLW4wlzNjgOjmoaUCeZg0lmGAMN1gdzcgFrkk3TkYr8cAGPfd5X9dquGHQcWFI1QuBuIo3zFty3RK5X3NGxWD3CwrGw249pMJB8z0AeleT61z8SCZScO2Y7HfGLsCr0v1JRgyerF1zB44F03PR3qZ7BJs77gExwuelSvxIHzekxEd3EFrJX2JjUWdTOz7DpHO0txd1Ce%2FcDYzDkl%2BNM5kmd9wsl6RHGQ327wo8KxkpH3qJ8Wrc6sfWP%2B1S8OQTVw9G2CimeHLKkZSrAjievUW8WUj82g2MWwk0X2mrUulvQUfaVVl1I6a9R0PbH5BwOE5RZShpFajqNC8Z3wZv7bDq9OGSIYS%2BFgOKh%2BZ9KJwznYInjW264J4xX69frJfhEQ9mvFpn6BgHE3Ejhj48%2FzQxw6cnBMfIpW%2B0axUB25A%2B%2Fy%2BOkGTM2FR5vum6YhjQ%2FoPHs6IJ2lPKuwLqoIiX9aoUAkUfPnSAOtoXB0UBdrLhXJi%2B%2BhFEi4FAsjTLU4KnhkZHShUyHTi9FLtezlHfmyyzQenueW1%2BLbUitklcaF9%2FSEKG4n5Q6HrZUcQRukNIGVKE4pJ4kcfNKXwriZIz749azllFsUugjR8G0ntUkWF6MbskSvMIDFMxvawagvJkqOtyr4x920hiX%2FxzFn5br62XWjIiyuTFJO9MVeoz5LH28vurM0wHcGf4moUsvKF9KSUAdTi3%2BXMUifIRxLFSI3GVLRBl9De0bQcSbFny5QpTx%2B1c5vTDX51lHZjLhVjM12Fg0gf5B1GOpzDBHC%2BFQLDNPWC%2BwNeriqiA%2BXyFTi0WVBMA6C2ZvuKd2eOE9%2BmxaDrCaW4rpnQs0eh4OjOnK23SbXfI0Ck66%2BIQrTYEl8FAazSAAT4WlqpB8ZNLgrSGLBINOQTGjt4vH4T6Z%2F1xp%2B%2BJglP5nZWe573ZaD2oy4qZZueVaGzu9Cv0UQS1amN4p7ZWE%2BsIqwdw50HqLAIPVoiq2gt%2BIMnxHeoLW4wlzPW6TfwiCLqGZg0lmGAMN1iec2w1yJahHBPD2kyLrnUdX9dquGHQcWFI1QuBuIo3z46Y6dze1iiQp%2BE3ehHCWRY9pMJB8z0AeNFZ6BG%2BXP5ecO2Y7HfGLsCr0v1JRgyerNj6jBT12u453qZ7BJs77gAjSA5JQnRhyzekxEd3EFrJX2JjUWdTOz7DpHO0txd1CnoDw53zI7EAIkPFqJS0tShHGQ327wo8K5i%2FVH2mw%2B4M6sfWP%2B1S8OX4ybOEhPvWZHLKkZSrAjievUW8WUj82g9wkpDYmQuQXulvQUfaVVl1I6a9R0PbH5GpFn%2BtB0eRixiNOdS4EDx77bDq9OGSIYZpW%2FGAghn21JwznYInjW264J4xX69frJQLjg%2FIl8w9YBgHE3Ejhj4%2FQVNIZ5WfkfpL11dxPM0Hf5A%2B%2Fy%2BOkGTM2FR5vum6Yho7wknukGbwoI57gUH5dHXr9aoUAkUfPnQ92sKxIspzprLhXJi%2B%2BhFHEOwtLm%2FwAFFZyIrW0vEMpTi9FLtezlHd58qWLkJ0mI1%2BLbUitklcaF9%2FSEKG4n5Q6HrZUcQRukH3biTaD%2B0trLDo5ZbqzvR3749azllFsUick6o6Y8sqLWF6MbskSvMIJ4IYsYqsPo5kqOtyr4x920hiX%2FxzFn5ajUeZcGekmyjFJO9MVeoz5LH28vurM0wGb9hucnurOFT94aXhxw%2BVmXMUifIRxLFSNc%2FY1mKSa0u0bQcSbFny5QpTx%2B1c5vTBW55ubfaeSZTM12Fg0gf5BSonjjAXcc5tQLDNPWC%2BwNeriqiA%2BXyFTi0WVBMA6C2aeEtqE0hbyFI0n%2F00FPfqwnQs0eh4OjOlXVIsYfH7CT066%2BIQrTYElVAjte0S7g6ulqpB8ZNLgrSGLBINOQTGjwaVySb6%2BwtVp%2B%2BJglP5nZWe573ZaD2oy4qZZueVaGzsEBdgdxpXl0SO3r8HAF683016NsGXsGlVT4RvZ2nMg1nxHeoLW4wlzQx8lwle%2BRJ6Zg0lmGAMN1o6xuXuZLBT9wXoWm6hkDeNX9dquGHQcWFI1QuBuIo3zCWNy1sW0M30bulMs%2BcC4iPtsOr04ZIhheXZDbLmmUEInDOdgieNbbrgnjFfr1%2Bslk3wKf6ezkXkGAcTcSOGPj7ISAnUADjD9ElE5YEYI1lDkD7%2FL46QZMzYVHm%2B6bpiGND%2Bg8ezognafNwTIpm99Zf1qhQCRR8%2BdQDrtOAJpP%2FasuFcmL76EUSOo6Zmf74dvssJEtTieC19OL0Uu17OUdyyFecmbW6ycX4ttSK2SVxoX39IQobiflDoetlRxBG6Qo%2FkWlDx9ZJ7kvkqM4E6NJ%2Fvj1rOWUWxSMeCEg7f2JW9YXoxuyRK8wmzYWB%2FGPGNOmSo63KvjH3Z03w0fgsHhW2McdFbKRYO1MUk70xV6jPksfby%2B6szTAS1dNCIGduNPfmtKj7qFL5p%2FtK6VRXXdANNejbBl7BpVwxGAyniQYJZ8R3qC1uMJc19182FHU%2FG9mYNJZhgDDdZQuwxMPxeSwCQHVR8iMIT8V%2FXarhh0HFhSNULgbiKN83z2UMm1tCWpeNm04J7WLXmPaTCQfM9AHrDiYMAGPnpknDtmOx3xi7Aq9L9SUYMnq5KJBPb4uYJEd6mewSbO%2B4BJTr8xBQpmzc3pMRHdxBayV9iY1FnUzs%2Bw6RztLcXdQoeQQhqs07o7s%2BYb8UU7bWcRxkN9u8KPClCylKeM8v7VOrH1j%2FtUvDndOOqGsgbb0RyypGUqwI4nr1FvFlI%2FNoO6mCimuj8Bw7pb0FH2lVZdSOmvUdD2x%2BRqRZ%2FrQdHkYtTKXiZify2%2F%2B2w6vThkiGHnpvvr6ob%2FQycM52CJ41tuuCeMV%2BvX6yWPDryEoWEq%2FQYBxNxI4Y%2BPRjwGBbSKX%2FOJLr2uXvjvGuQPv8vjpBkzNhUeb7pumIYYcy%2BBOnblv6iUVlCZT4sinQs0eh4OjOnvVz%2F67MKL8k66%2BIQrTYElAujr9gw3rmKlqpB8ZNLgrSGLBINOQTGjWkokg2HVMoi6W9BR9pVWXUjpr1HQ9sfkakWf60HR5GJPoPbek6bMT1zFInyEcSxUQLTdtAaYy9LtG0HEmxZ8uUKU8ftXOb0w1BON1WU6q8kzNdhYNIH%2BQZQ2w02uhUkNzekxEd3EFrJX2JjUWdTOz7DpHO0txd1CAaqnGhi6HCY%3D&paperId=53789868&_yl005_=a40f75dce6972a3b755f28896d321a1a

保存成功以后:
[Java] 纯文本查看 复制代码

{"code":"1","msg":""}

提交答案(真正提交) 接口:http://tiku.ekgc.cn/testing/kgc/app/saveExamPaper?paperId=
[Java] 纯文本查看 复制代码

httpAndRequests.http_get(urlConstant.SAVAE_MONI + paperId)

提交成功
[Asm] 纯文本查看 复制代码

{"code":"1","msg":""}

成品我就不提供了,想体验的话微信小程序搜"蓝鸟助手“(我不是的公告)

教程到这结束

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
管埋员的头像-小北的自留地

昵称

取消
昵称