项目的目录结构

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封装相关推荐

  1. 强智教务系统API学习进度条--(以完结)

    前言 想写一个基于微信公众号的课表及成绩查询系统,记录学习过程与实现. 开发环境 IDEA JDK1.8 强智教务系统API文档 API目录 登录 (以实现) 时间信息 (以实现) 课程信息 成绩信息 ...

  2. knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案

    knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量, ...

  3. java汽车美容管理计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    java汽车美容管理计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java汽车美容管理计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构:B/S架构 ...

  4. 计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档)

    计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档) 计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  5. 每日获取强智教务系统课表,并发送短信到学生手机!爬虫真牛逼!

    自从学校换了强智的教务系统后,学校的app的查课表功能基本就报废了,记不住课表的我无奈自己动手. 功能实现:如果当天有课,在当天早上6点30以短信的形式自动发送课表至手机 首先我想的是利用模拟登陆然后 ...

  6. mac java api文档_程序员必备 Dash for mac 各种语言和系统Api文档

    Dash for mac  5.5.0 是一款功能强大的API文档浏览器和代码片段管理器,内置了丰富的API文档,多达150多种,可以在线下载各种开发API和文档资料,可以让您集中管理API文档,包括 ...

  7. Java基础知识(二)—— API文档

    一.API是Java提供的基本编程接口,API文档详细说明了Java中常用类和方法的功能,开发者可以通过查阅API文档,调用应用程序接口(API)来编程.用于告诉开发者如何使用这些基础类及这些类中包含 ...

  8. java apidoc案例_java 自动生成api 文档 :apidoc

    官网:apidocjs 首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,适用于java项目.跟已有的项目框架没有任何关系 一.apidoc简介 apidoc通 ...

  9. Burpsuite API 文档 python java

    https://www.cloud.tencent.com/developer/article/1166490 自己想写个插件,找了一下午愣是没找到python稍微详细点的文档 直接看别人的代码借鉴, ...

  10. 强智教务系统——获取课表

    两个接口: 获取个人信息以及登录成功后header中的token: http://jwxt.xxx.edu.cn/app.do?method=authUser&xh={$学号}&pwd ...

最新文章

  1. QT学习之经典控件源码(如此强大)
  2. Codeforces 919D - Substring
  3. OncePerRequestFilter的作用
  4. 始发 终点站 附近几站 全部查询 原来代码基本弃用 数组见上篇文章
  5. Autolayout的简单介绍和示例代码
  6. TFS 2017 持续集成速记
  7. 152-Maximum Product Subarray
  8. 全网最雕的 10 名月薪超过 5W 的程序员,和他们的公众号!
  9. js,如何把省份简称转换成省份全称
  10. IM即时通讯实现原理
  11. wincc做皮带动画_WinCC里怎样做动画呢
  12. spring cloud学习-什么是Spring Cloud Eureka?
  13. sql语句备份还原数据库
  14. html图片自动切换的幻灯片效果的,JS实现可切换图片的幻灯切换效果示例
  15. Prophet文档中文翻译--outliers
  16. cairosvg在linux中的安装_Cairo编程
  17. Driller分析与改进(一)
  18. Python爬取张家界风景美图
  19. linux下socket通信,server和client简单例子
  20. java什么是局部与全局变量_Java中的局部VS全局变量

热门文章

  1. 网贷查询接口开发 网贷黑名单查询 个人网贷黑名单查询
  2. 使用主题背景编辑器设计应用主题背景
  3. 西门子实数转整数_实数如何转换为整数
  4. mysql 自增 空洞_MySQL auto_increment空洞问题
  5. 程序员专属小情话,哎呦,不错哦!!!
  6. org.eclipse.core.runtime.CoreException: Plug-in org.eclipse.jdt.ui was unable to load class org.ecli
  7. BOC保护的氨基酸卟啉TAPP-Ala-BOC、TAPP-Phe-BOC、TAPP-Trp-BOC、Zn·TAPP-Ala-BOC、Zn·TAPP-Phe-BOC、Zn·TAPP-Trp-BOC齐岳
  8. 京东登录页面html代码_如何制作一个简单的HTML登录页面(附代码)
  9. python中sklearn.datasets.make_blobs()函数用法
  10. AngularJS车牌号正则表达式验证