本文共 1749 字,大约阅读时间需要 5 分钟。
HttpComponents(HttpClient):
超文本传输协议(HTTP)可能是当今Internet上使用的最重要的协议。Web服务,支持网络的设备和网络计算的增长继续将HTTP协议的作用扩展到用户驱动的Web浏览器之外,同时增加了需要HTTP支持的应用程序的数量。
HttpComponents是为扩展而设计的,同时提供了对基本HTTP协议的强大支持,对于构建HTTP感知的客户端和服务器应用程序(例如Web浏览器,Web Spider,HTTP代理,Web服务传输库或利用或扩展HTTP协议以进行分布式通信。
全国大学英语四、六级考试(含口语)成绩查询官网:
http://cet.neea.edu.cn/cet
考试代码数据文件:
API:
POST请求
URL:
参数:
data:考试代码,准考证考,考生姓名
注: HttpClientUtils为HttpClient工具类,参考:
(无验证码识别)
package club.zstuca.myzstu.service.Impl;import club.zstuca.myzstu.httpclient.HttpClientUtils;import club.zstuca.myzstu.service.ICETService;import org.springframework.stereotype.Service;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @Author ShenTuZhiGang * @Version 1.0.0 * @Date 2020-02-21 11:31 */@Servicepublic class CETServiceImpl implements ICETService { private static final String QUERY_URL = "http://cache.neea.edu.cn/cet/query"; @Override public String query(String zkzh, String name){ Mapheaders=new HashMap<>(); headers.put("Referer","http://cet.neea.edu.cn/cet/query.html"); Map params=new HashMap<>(); char idx = zkzh.charAt(9); String z = null; if(idx == '1'){ z = "CET4_192_DANGCI"; }else if(idx == '2'){ z = "CET6_192_DANGCI"; } String data = z + "," + zkzh + "," + name; params.put("data",data); String res = HttpClientUtils.doGetRequest(QUERY_URL,headers,params); Pattern pattern = Pattern.compile("result.callback\\((.*)\\);"); Matcher m = pattern.matcher(res); String obj = ""; if (m.find()) { obj = m.group(1); } return obj; }}