• AndroidHttpClient & jsoup 解析 正方教务系统


    这段时间学习了一下使用jsoup来解析网页,也是看了下学校的正方教务系统,因为这个正方教务系统的各种不爽,不知道为什么还是那么多学校用这个系统呢?每到选课什么的就死啦死啦的,从它的网页上各种命名来看,简直就和我们这些小菜鸟一样o(╯□╰)o

    使用AndroidHttpClient 而不是使用HttpClient,怎么说AndroidHttpClient也是SDK中自带的,基于HttpConnection,所以来说性能上来说应该比较好吧.

    因为不熟悉使用这个强大的工具导致走了很多弯路,浪费了很多时间 ,很多参数没有像new 一个DefaultHttpClient简单,AndroidHttpClient的参数需要手动设置一下才好,比如说我在java 工程中使用的是HttpClient,我也没设置什么参数,直接拿来就用,它内部已经帮我们处理了很多细节问题,像重定向,,有时候我都不知道他重定向干嘛去了,经常获取不到我需要的内容.在Android 工程中 ,使用AndroidHttpClient 默认不会自动重定向,需要手动设置,还有忘记设置各个header导致各种问题.

    此次任务是使用AndroidHttpclient来获取指定网站的数据内容,包括模拟各种post,get等请求.然后交由jsoup工具来解析出我需要的内容,比如课表查询,用户信息,学生成绩等...

    当然在这之前对网站的抓包分析是不可少的,我就使用了最简单的工具,Google浏览器和它自带的工具,特别注意这段中间的一段字符串(24位),搞不懂原理,这个网站怎么抓也抓不到cookie,

    1.首先的登录进去才行,我们知道一般网站都会设置个验证码什么的,所以我就想了各种办法来尝试是否可以直接不要验证码登录呢,可惜太难搞了,还是老老实实自己填写吧,貌似那个叫什么orc的可以自动识别类似的验证码的.

    根据这个验证码地址找到链接,http://jwgl.hstc.edu.cn/(oco15si4snyeb04510vu0045)/CheckCode.aspx  ,直接访问这个就是验证码了,但是我们特别需要获取到中间的那段字符串,它是每次随机产生的,很像cookie的工作,后面的访问都需要这段,

    一开始我是直接固定了一段24位的字符串给他,也能正常登陆进去,但是获取各种信息的时候就不能了.所以还得从访问http://jwgl.hstc.edu.cn/CheckCode.aspx这个地址后会重定向到一段新的地址,这个地址中间就有了24位字符串了.然后根据这个字符串加入首页来模拟登陆. 使用AndroidHttpClient获取到这个网址的响应内容,经过重定向后得到一个InputStream,然后让它显示到ImageView上,我在测试的时候经常接收不到响应的输入流,可能是哪里出问题了,在2.3系统上跑还很正常,在4.2上就经常没内容了.

    然后还是各种用户输入登录的过程了.

    代码就不贴了,放上连接,目前该项目正在进行中,欢迎各位前来指导.

  • 相关阅读:
    基于SpringBoot+Mybatis+AntDesign快速开发平台,Jeecg-Boot 1.1 版本发布
    jeecg-boot 简易部署方案
    JeecgBoot版本4月份新版即将发布,抢先体验。。
    Jeecg-Boot 1.0版本发布,企业级快速开发平台
    jeecg之弹窗插件lhgdialog小结
    JEECG 集成KiSSO单点登录实现统一身份认证
    sass
    http1.1管线话 vs htttp2.0 多路复用
    http 状态码
    http参考
  • 原文地址:https://www.cnblogs.com/act262/p/3705737.html
Copyright © 2020-2023  润新知