java实现-强智教务系统API文档-全部java封装
项目的目录结构
AIP 接口类
package dao;import net.sf.json.JSONObject;/*** 实现强智API https://qzapi.github.tlingc.com/api/getKbcxAzc/*/public interface Qzapi {/*** 相当于登录* @param xh 学号* @param pwd 密码* @return*/JSONObject authUser(String xh,String pwd);/***获取所提交的日期的时间、周次、学年等信息* @param currDate //格式为"YYYY-MM-DD",必填,留空调用成功,但返回值均为null* @return*/JSONObject getCurrentTime(String currDate);/*** 获取一周的课程信息* @param xh 必填,使用与获取token时不同的学号,则可以获取到新输入的学号的课表* @param xnxqid 格式为"YYYY-YYYY-X",非必填,不包含时返回当前日期所在学期课表* @param zc //必填* @return*/JSONObject getKbcxAzc(String xh,String xnxqid,String zc);/***获取成绩信息* @param xh //必填,可以添加非本token学号查询他人成绩* @param xnxqid //非必填,不填输出全部成绩* @return*/JSONObject getCjcx(String xh,String xnxqid);/*** 获取考试信息* @param xh* @return*/JSONObject getKscx(String xh);/*** 获取某个校区教学楼信息* @param xqid //校区ID* @return*/JSONObject getJxlcx(String xqid);/*** 获取空教室信息* @param time //格式"YYYY-MM-DD",非必填,默认返回当前日期空闲教室* @param idleTime //有allday,am,pm,night四种取值,非必填,默认值疑似allday* @param xqid //校区ID,非必填* @param jxlid //教学楼ID,非必填* @param classroomNumber //可选项 30,30-40,40-50,60(分别意为30人以下,30-40人,···,60人以上)* @return*/JSONObject getKxJscx(String time,String idleTime,String xqid,String jxlid,String classroomNumber);/*** 获取当前token的用户信息 注意:此API测试与参考文档不同,待修改/补充* @param xh 疑似非必填,添加或不添加本参数返回相同值* @return*/JSONObject getStudentIdInfo(String xh);/**** @param xh 学号* @return*/JSONObject getUserInfo(String xh);/*** 获取学年学期信息* @param xh 2017xxxxxx' //非必填* @return*/JSONObject getXnxq(String xh);/*** 获取校区信息* @return*/JSONObject getXqcx();}
实现接口
package dao;import net.sf.json.JSONObject;
import org.apache.http.message.BasicNameValuePair;
import utils.Util;import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;public class QzapiImpl implements Qzapi {private String xh = "20158553";private String pwd = "55557575";private List<BasicNameValuePair> list;private String token;private Util util = null;public QzapiImpl() {list = new ArrayList<BasicNameValuePair>();util = new Util();try {token = util.getToken(xh, pwd);} catch (URISyntaxException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public JSONObject authUser(String xh, String pwd) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","authUser"));list.add(new BasicNameValuePair("xh",xh));list.add(new BasicNameValuePair("pwd",pwd));return util.execute(list,token);}public JSONObject getCurrentTime(String currDate) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","authUser"));list.add(new BasicNameValuePair("currDate",currDate));return util.execute(list,token);}public JSONObject getKbcxAzc(String xh, String xnxqid, String zc) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getKbcxAzc"));list.add(new BasicNameValuePair("xh",xh));list.add(new BasicNameValuePair("xnxqid",xnxqid));list.add(new BasicNameValuePair("zc",zc));return util.execute(list,token);}public JSONObject getCjcx(String xh, String xnxqid) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getCjcx"));list.add(new BasicNameValuePair("xh",xh));list.add(new BasicNameValuePair("xnxqid",xnxqid));return util.execute(list,token);}public JSONObject getKscx(String xh) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getKscx"));list.add(new BasicNameValuePair("xh",xh));return util.execute(list,token);}public JSONObject getJxlcx(String xqid) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getJxlcx"));list.add(new BasicNameValuePair("xqid",xqid));return util.execute(list,token);}public JSONObject getKxJscx(String time, String idleTime, String xqid, String jxlid, String classroomNumber) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getKxJscx"));list.add(new BasicNameValuePair("time",time));list.add(new BasicNameValuePair("idleTime",idleTime));list.add(new BasicNameValuePair("xqid",xqid));list.add(new BasicNameValuePair("jxlid",jxlid));list.add(new BasicNameValuePair("classroomNumber",classroomNumber));return util.execute(list,token);}public JSONObject getStudentIdInfo(String xh) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getStudentIdInfo"));list.add(new BasicNameValuePair("xh",xh));return util.execute(list,token);}public JSONObject getUserInfo(String xh) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getUserInfo"));list.add(new BasicNameValuePair("xh",xh));return util.execute(list,token);}public JSONObject getXnxq(String xh) {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getXnxq"));list.add(new BasicNameValuePair("xh",xh));return util.execute(list,token);}public JSONObject getXqcx() {list.clear(); //从列表中删除所有元素。list.add(new BasicNameValuePair("method","getXqcx"));return util.execute(list,token);}
}
调用的工具类
package utils;
import net.sf.json.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;import java.io.IOException;
import java.net.URISyntaxException;
import java.util.List;public class Util {public String getToken(String xh, String pwd) throws URISyntaxException, IOException {CloseableHttpClient httpClient = HttpClients.createDefault();URIBuilder uriBuilder = new URIBuilder("http://zswxyjw.minghuaetc.com/znlykjdxswxy/app.do");uriBuilder.setParameter("method", "authUser").setParameter("xh", xh).setParameter("pwd", pwd);HttpGet httpGet = new HttpGet(uriBuilder.build());CloseableHttpResponse response = httpClient.execute(httpGet);String s = null;if (response.getStatusLine().getStatusCode() == 200) {HttpEntity entity = response.getEntity();s = EntityUtils.toString(entity, "utf-8");}JSONObject obj = new JSONObject();obj = obj.fromObject(s);Object token = obj.get("token");return token.toString();}public JSONObject execute(List<BasicNameValuePair> list,String token) {CloseableHttpClient httpClient = HttpClients.createDefault();URIBuilder uriBuilder = null;try {uriBuilder = new URIBuilder("http:*****app.do");} catch (URISyntaxException e) {e.printStackTrace();System.out.println("URL错误!");}//添加参数for (BasicNameValuePair i:list) {uriBuilder.setParameter(i.getName(),i.getValue());}HttpGet httpGet = null;try {//创建get请求httpGet = new HttpGet(uriBuilder.build());} catch (URISyntaxException e) {e.printStackTrace();System.out.println("util中httpget错误");}httpGet.setHeader("token",token);CloseableHttpResponse response = null;try {response = httpClient.execute(httpGet);} catch (IOException e) {e.printStackTrace();System.out.println("util中execute错误");}HttpEntity entity = response.getEntity();String s = null;try {s = EntityUtils.toString(entity, "utf-8");} catch (IOException e) {e.printStackTrace();System.out.println("字符串转换失败!");}JSONObject obj = new JSONObject();try {return obj.fromObject(s);}catch (Exception e) {s = "{\"result\":"+s+"}";return obj.fromObject(s);}}}
测试类
java实现-强智教务系统API文档-全部java封装相关推荐
- 强智教务系统API学习进度条--(以完结)
前言 想写一个基于微信公众号的课表及成绩查询系统,记录学习过程与实现. 开发环境 IDEA JDK1.8 强智教务系统API文档 API目录 登录 (以实现) 时间信息 (以实现) 课程信息 成绩信息 ...
- knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案
knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量, ...
- java汽车美容管理计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
java汽车美容管理计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java汽车美容管理计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构:B/S架构 ...
- 计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档)
计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档) 计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
- 每日获取强智教务系统课表,并发送短信到学生手机!爬虫真牛逼!
自从学校换了强智的教务系统后,学校的app的查课表功能基本就报废了,记不住课表的我无奈自己动手. 功能实现:如果当天有课,在当天早上6点30以短信的形式自动发送课表至手机 首先我想的是利用模拟登陆然后 ...
- mac java api文档_程序员必备 Dash for mac 各种语言和系统Api文档
Dash for mac 5.5.0 是一款功能强大的API文档浏览器和代码片段管理器,内置了丰富的API文档,多达150多种,可以在线下载各种开发API和文档资料,可以让您集中管理API文档,包括 ...
- Java基础知识(二)—— API文档
一.API是Java提供的基本编程接口,API文档详细说明了Java中常用类和方法的功能,开发者可以通过查阅API文档,调用应用程序接口(API)来编程.用于告诉开发者如何使用这些基础类及这些类中包含 ...
- java apidoc案例_java 自动生成api 文档 :apidoc
官网:apidocjs 首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,适用于java项目.跟已有的项目框架没有任何关系 一.apidoc简介 apidoc通 ...
- Burpsuite API 文档 python java
https://www.cloud.tencent.com/developer/article/1166490 自己想写个插件,找了一下午愣是没找到python稍微详细点的文档 直接看别人的代码借鉴, ...
- 强智教务系统——获取课表
两个接口: 获取个人信息以及登录成功后header中的token: http://jwxt.xxx.edu.cn/app.do?method=authUser&xh={$学号}&pwd ...
最新文章
- QT学习之经典控件源码(如此强大)
- Codeforces 919D - Substring
- OncePerRequestFilter的作用
- 始发 终点站 附近几站 全部查询 原来代码基本弃用 数组见上篇文章
- Autolayout的简单介绍和示例代码
- TFS 2017 持续集成速记
- 152-Maximum Product Subarray
- 全网最雕的 10 名月薪超过 5W 的程序员,和他们的公众号!
- js,如何把省份简称转换成省份全称
- IM即时通讯实现原理
- wincc做皮带动画_WinCC里怎样做动画呢
- spring cloud学习-什么是Spring Cloud Eureka?
- sql语句备份还原数据库
- html图片自动切换的幻灯片效果的,JS实现可切换图片的幻灯切换效果示例
- Prophet文档中文翻译--outliers
- cairosvg在linux中的安装_Cairo编程
- Driller分析与改进(一)
- Python爬取张家界风景美图
- linux下socket通信,server和client简单例子
- java什么是局部与全局变量_Java中的局部VS全局变量
热门文章
- 网贷查询接口开发 网贷黑名单查询 个人网贷黑名单查询
- 使用主题背景编辑器设计应用主题背景
- 西门子实数转整数_实数如何转换为整数
- mysql 自增 空洞_MySQL auto_increment空洞问题
- 程序员专属小情话,哎呦,不错哦!!!
- org.eclipse.core.runtime.CoreException: Plug-in org.eclipse.jdt.ui was unable to load class org.ecli
- BOC保护的氨基酸卟啉TAPP-Ala-BOC、TAPP-Phe-BOC、TAPP-Trp-BOC、Zn·TAPP-Ala-BOC、Zn·TAPP-Phe-BOC、Zn·TAPP-Trp-BOC齐岳
- 京东登录页面html代码_如何制作一个简单的HTML登录页面(附代码)
- python中sklearn.datasets.make_blobs()函数用法
- AngularJS车牌号正则表达式验证