HIT通用服务集包含了以下常用的组件:
- HitInfoProviderFactory: 用于获取乐学网认证登录后,用户信息的工厂类
- WeChatServices:微信服务大厅中的服务
- CasLogin.LoginHttpClient:用于使用统一身份认证登录的HttpClient
- Jwts.JwtsService:用于Jwts的各种服务
将需要使用的服务,加入依赖注入的服务集合即可
既可以使用依赖注入初始化,也可以直接使用new
来创建LoginHttpClient的实例。LoginHttpClient直接继承自HttpClient,可以像HttpClient一样使用。除此外,还提供了以下成员:
名称 | 类型 | 说明 | 参数 | 返回值 | 异常 |
---|---|---|---|---|---|
LoginAsync | 异步方法 | 进行统一认证登录 | string username 用户名string password 密码Func<Stream, Task<string>>? captchaGenerator 可选。 验证码填写适配器,用于在必须时填写验证码。 |
- | CaptchaRequiredException : 需要填写二维码,但是未提供对应的适配器LoginFailedException : 登陆认证失败,原因见Message 。 |
TryLoginFor | 异步方法 | 持续尝试进行统一认证登录,直至满足最大尝试次数,或者抛出不能处理的异常 | string username 用户名string password 密码uint maxTrail 最大尝试次数Func<Stream, Task<string>>? captchaGenerator 可选。 验证码填写适配器,用于在必须时填写验证码。 |
- | CaptchaRequiredException : 需要填写二维码,但是未提供对应的适配器LoginFailedException : 登陆认证失败,原因见Message 。 |
IsAuthorized | 异步方法 | 检查是否已经完成统一认证登录 | - | bool ,是/否 |
- |
Win32CaptchaInput | 静态函数(验证码填写适配器) | 适用于控制台程序。 使用Windows默认图片查看器查看验证码图片 | - | - | - |
CaptchaInputFactory | 静态函数(验证码填写适配器工厂) | 适用于控制台程序。 使用指定查看器生成验证码填写适配器 | string pathToJpegViewer Jpeg查看器的路径 |
验证码填写适配器 | - |
GetTwoPhaseLoginInfoAsync | 异步方法 | 获取进行两段CAS登录的登录信息(第一阶段) | string username 用户名 |
Dictionary<string, string?> 用于两段异步登录的登录信息字典;其中键password 对应值是加密的salt(Aes.Key);键captcha 如果存在,则对应值是用于获取验证码的url |
- |
ApplyTwoPhaseLoginInfoAsync | 异步方法 | 应用两段CAS登录的登录信息进行登录(第二阶段) | Dictionary<string, string?> loginInfo 登录信息,原始产生自GetTwoPhaseLoginInfoAsync(string) ;但是此处的键password 对应值已经加密(Aes);键captcha 如果存在,则对应值已经完成人工填写。 |
- | LoginFailedException : 登陆认证失败,原因见Message 。 |
既可以使用依赖注入初始化,也可以直接使用new
来创建JwtsService的实例。JwtsService提供了以下成员:
名称 | 类型 | 说明 | 参数 | 返回值 | 异常 |
---|---|---|---|---|---|
LoginAsync | 异步方法 | 进行统一认证登录 | string username 用户名string password 密码Func<Stream, Task<string>>? captchaGenerator 可选。 验证码填写适配器,用于在必须时填写验证码。 |
- | CaptchaRequiredException : 需要填写二维码,但是未提供对应的适配器LoginFailedException : 登陆认证失败,原因见Message 。 |
LoginAsync | 异步方法 | 使用已经登录完毕LoginHttpClient登录Jwts | LoginHttpClient,已经完成登录 | - | - |
GetSemesterStartAsync | 异步方法 | 获取学期开始日期 | uint year 学年JwtsSemester semester 学期 |
学期开始日期 | - |
GetScheduleAsync | 异步方法 | 获取课表信息 | uint year 学年JwtsSemester semester 学期 |
大小为[7,6]的字符串列表矩阵,7为周一至周日,6为节次;数组的每个元素是该位置的课程(课程可能会占用1-3行) | - |
GetExamDetailsAsync | 异步方法 | 获取考试详细(默认学期全部类别) | - | 一组考试详细记录 | - |
GetExamDetailsAsync | 异步方法 | 获取考试详细(指定学期类别) | uint year 学年JwtsSemester semester 学期JwtsExamType type 类别 |
一组考试详细记录 | - |
这是一个静态类,直接调用对应方法即可。 目前提供以下服务:
- 匿名查询课表服务