2021年12月四六级考试成绩批量查询Java

Posted 蒙面侠1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年12月四六级考试成绩批量查询Java相关的知识,希望对你有一定的参考价值。

由于网站现在已经改为登录账号才能查询成绩了,所以做不了具体的解释,查询是无需验证码破解的,知道链接,参数,设置好请求头,即可查询成绩,以下代码仍可运行进行查询。

/**
 * @author :万土霖
 * @date :Created in 2022/3/15 12:10
 * @description:四六级查询
 * @modified By:
 * @version:
 */
public class CetQuery 
    //四级网址
    public static final String CET4_URL="http://cache.neea.edu.cn/api/latest/results/cet?e=";
	//六级网址
    public static final String CET6_URL="http://cache.neea.edu.cn/api/latest/results/cet?e=";

    public static final String E = "CET_202112_DANGCI";

    public static final String CET4_KM = "1";

    public static final String CET6_KM = "2";

	//结果列表
    static List<String> res=new ArrayList<>();

    /**
     * @Author 万土霖
     * @Description //TODO 拼接链接,查询六级或者四级成绩
     * @Date 16:39 2022/3/15
     * @Param [name, sfz]
     * @return void
     */
    static void query(String name ,String sfz ) throws IOException 
        String xm = name;
        String no = sfz;
        // 拼接url
        String cet4url = CET4_URL + E + "&km=" + CET4_KM + "&xm=" + xm + "&no=" + no + "&v=";
        String cet6url = CET6_URL + E + "&km=" + CET6_KM + "&xm=" + xm + "&no=" + no + "&v=";
        String cet4res=inquiry(cet4url);
        if (cet4res==null||cet4res.equals(""))
            String cet6res=inquiry(cet6url);
            if (cet6res==null||cet6res.equals("")) 
                return;
            
            else
                res.add(cet6res);
            
        else
            res.add(cet4res);
        
    

    /**
     * @Author 万土霖
     * @Description //TODO 发送http请求查询成绩
     * @Date 16:39 2022/3/15
     * @Param [url]
     * @return java.lang.String
     */
    static String inquiry(String url) throws IOException 
        // 获得一个httpclient对象
        CloseableHttpClient httpclient = HttpClients.createDefault();
        HttpGet httpget = new HttpGet(url);
        CloseableHttpResponse response = null;
        // 设置请求头
        httpget.addHeader("Referer", "http://cet.neea.edu.cn/");
        response = httpclient.execute(httpget);
        if (response.getStatusLine().getStatusCode() == 200) 
            String resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
            return print(resultString);
        
        return null;
    

    /**
     * @Author 万土霖
     * @Description //TODO 四六级结果数据解析
     * @Date 16:38 2022/3/15
     * @Param [string]
     * @return java.lang.String
     */
    static String print(String string)
        Map<String, Object> map = new LinkedHashMap<>();
        // 把Json数据转为map
        HashMap hashMap = JSON.parseObject(string, HashMap.class);
        if (hashMap.containsKey("score")) 
            map.put("姓名",hashMap.get("xm"));
            if (hashMap.get("km").toString().equals(CET4_KM)) 
                map.put("等级", "四级");
            
            else 
                map.put("等级", "六级");
            
            map.put("成绩", hashMap.get("score"));
            map.put("听力", hashMap.get("sco_lc"));
            map.put("阅读", hashMap.get("sco_rd"));
            map.put("写作", hashMap.get("sco_wt"));
            //口语成绩
            if (hashMap.get("ky_sco")!=null&&!hashMap.get("ky_sco").equals("--")) 
                map.put("口语", hashMap.get("ky_sco"));
            
            String result = map.toString().replace("=",":").replace("-","");
            if (Integer.parseInt(hashMap.get("score").toString())>=425) 
                return result.substring(1, result.length() - 1) + "           通过";
            
            return result.substring(1, result.length() - 1);
        
        return null;
    

    /*单文件输入,这里使用的是excel文件,文件的第三列是姓名,第四列是身份证号*/
    static void file(HSSFWorkbook hssfWorkbook) 
        try 
            HSSFSheet sheet = hssfWorkbook.getSheetAt(0);
            int maxRow = sheet.getLastRowNum();
            //第一,二行是表头,从第三行开始
            for (int row = 2; row <= maxRow; row++) 
            //文件的第三列是姓名,第四列是身份证号
                query(sheet.getRow(row).getCell(2).toString(), sheet.getRow(row).getCell(3).toString());
            
         catch (IOException e) 
            e.printStackTrace();
        
    


    //main方法
    public static void main(String[] args) throws IOException 
        HSSFWorkbook hssfWorkbook2 = new HSSFWorkbook(new FileInputStream("你的excel文件地址"));
        file(hssfWorkbook2);
        for(int i=0;i<res.size();i++)
            System.out.println(res.get(i));
        
    

以上是关于2021年12月四六级考试成绩批量查询Java的主要内容,如果未能解决你的问题,请参考以下文章

2021年12月四六级考试成绩批量查询Java

求2011年6月高等学校英语应用能力考试,A级

英语四六级成绩可以查询了,查询入口在哪里?

2018 年下半年全国大学英语六级考试(CET)考生须知

山东省2021年夏季模拟高考成绩查询,2021年夏季山东德州模拟高考成绩查询入口(已开通)...

2023年江苏专转本成绩什么时候出