基本概念
HttpComponents(HttpClient):
超文本传输协议(HTTP)可能是当今Internet上使用的最重要的协议。Web服务,支持网络的设备和网络计算的增长继续将HTTP协议的作用扩展到用户驱动的Web浏览器之外,同时增加了需要HTTP支持的应用程序的数量。
HttpComponents是为扩展而设计的,同时提供了对基本HTTP协议的强大支持,对于构建HTTP感知的客户端和服务器应用程序(例如Web浏览器,Web Spider,HTTP代理,Web服务传输库或利用或扩展HTTP协议以进行分布式通信。
问题分析
全国大学英语四、六级考试(含口语)成绩查询官网:
http://cet./cet
考试代码数据文件:
API:
POST请求
URL:http://cache./cet/query
参数:
data:考试代码,准考证考,考生姓名
源代码
JAVA版本
注:HttpClientUtils为HttpClient工具类,参考:https://shentuzhigang./article/details/104274609
(无验证码识别)
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 -02-21 11:31*/@Servicepublic class CETServiceImpl implements ICETService {private static final String QUERY_URL = "http://cache./cet/query";@Overridepublic String query(String zkzh, String name){Map<String,String> headers=new HashMap<>();headers.put("Referer","http://cet./cet/query.html");Map<String,String> 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 = pile("result.callback\\((.*)\\);");Matcher m = pattern.matcher(res);String obj = "";if (m.find()) {obj = m.group(1);}return obj;}}
Python版本
/ZZPHOENIX/article/details/81952224
参考文章
/ZZPHOENIX/article/details/81952224
/w1570631036/p/5187101.html