最近在做一个查课表的网页,思路是用httpclient模拟用户登录,抓取课表页。现在遇见一个问题纠结了很久没有解决,望大神们给点帮助。
问题是:
青果的一类教务系统,我用F12查看网络请求,登录的post请求只提交了用户名,密码和验证码都是用MD5加密后提交的,于是我伪造了所有的请求参数(包括页面input里隐藏的参数,和MD5加密后的密码和验证码),并且对比了 “我伪造后的参数列表”和“浏览器登录成功的参数列表”完全一致,最后,却总是给我验证码错误的结果。
我测试过的没有问题的操作:
验证码获取正常(其他系统含验证码的能登录成功已经保证了是同一个回话,也用断点查看了获取验证码的httpClient和登录的是一个对象,并且登录时候用到了访问验证码返回的cookie)
MD5加密的密码和验证码,我对比过相同验证码、用户名、密码在浏览器里面加密过后的密文和我自己程序生成的密文一致
用java的httpclient和php的curl都模拟过登录,java的一直都是返回验证码错误,php的返回的是下图的页面
也用chrome的插件advancedRequest,Firefox的插件httprequester尝试登录过,advancedRequest的结果跟php一样,httpRequester和java的结果一样
인증코드로 로그인하는 경우, 먼저 로그인 페이지에 접속하여 쿠키를 받은 후, 쿠키를 이용하여 인증코드에 접속해야 합니다. 마지막으로 쿠키와 함께 서버에 게시 요청을 보냅니다. 로그인이 성공했습니다.
일반적으로 소금과 함께 md5를 사용합니다
글쎄, Qingguo의 시뮬레이션 로그인도 수행하고 있습니다. 검증 코드 이미지가 유효한지 확인하려면 앞서 얻은 세션 헤더 파일을 ValidateCode.aspx로 보내야 합니다.