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的主要内容,如果未能解决你的问题,请参考以下文章