模拟登录北京移动
BJ10086
GET https://login.10086.cn/html/bj/login.html
GET https://login.10086.cn/loadSendflag.htm?timestamp= HTTP/1.1
Referer: https://login.10086.cn/html/bj/iloginnew.html?1543995261660
這一步將 Set-Cookie
Set-Cookie: sendflag=20181205153357223101;domain=.10086.cn;secure;HTTPOnly;
Set-Cookie: CITY_INFO=100|10;domain=.10086.cn;path=/;expires=Mon, 29-Jun-2015 06:11:17 GMT
我們需要獲取其中的 sendflag 的值,設置到發送短信時的請求中,這樣才能成功發送短信驗證碼
public boolean sendMsg() {String sendMsgUrl = "https://login.10086.cn/sendRandomCodeAction.action";HttpPost post = new HttpPost(sendMsgUrl);post.addHeader("Origin", "https://login.10086.cn");// X-Requested-With: XMLHttpRequest// Xa-before: 00879948406687273556266369392484post.addHeader("X-Requested-With", "XMLHttpRequest");post.addHeader("Xa-before", "00879948406687273556266369392484");post.addHeader("Referer", "https://login.10086.cn/html/bj/iloginnew.html?" + System.currentTimeMillis());post.addHeader("Cookie", "captchatype=z; sendflag=" + sendflag + "; CaptchaCode=FFLLuC; rdmdmd5=F461C555E9969DEE8272D33FB28429C6; WT_FPC=id=2d8ed6fa471855ede191543995");List<NameValuePair> from = new ArrayList<NameValuePair>();POST https://login.10086.cn/chkNumberBjAction.action HTTP/1.1
Origin: https://login.10086.cn
Referer: https://login.10086.cn/html/bj/iloginnew.html?1543995261660
userName=15811120240
成功返回 true
POST https://login.10086.cn/loadToken.action HTTP/1.1
Origin: https://login.10086.cn
Referer: https://login.10086.cn/html/bj/iloginnew.html?1543995261660
userName=15811120240
成功返回:
{“result”:“00879948406687273556266369392484”,“code”:“0000”,“desc”:“成功”}
POST https://login.10086.cn/sendRandomCodeAction.action HTTP/1.1
Origin: https://login.10086.cn
Referer: https://login.10086.cn/html/bj/iloginnew.html?1543995261660
userName=15811120240&
type=POST&
channelID=00100
成功返回 0
POST https://login.10086.cn/touchBjLogin.action
提交的信息
短信驗證碼登錄:
rememberMe=1&
accountType=01&
pwdType=02&
account=15120099383&
password=QAvcCQD689cUFrMFcFWFWNcxTiv4xp%2BMnzO%2B%2FW0AChSAP8Af%2BXLBp6QnMCiyNGfyGjaIUKL%2BJm1DZlXDvu7HCMFWnNtrU5r7TvxID5Fg1VIfx1OA1L0qyRdoRtPXlBASI%2FUT6CA8v4td9wIYj3prXsiFPFo%2Fl3roEsDjk04lhLj98d6T6FXBW4XPLPrcpUKLXD5k9GCNoR1tyj7hQAPV3th0E%2Fp%2F3%2F8H8wgXRcDWZeckmHLzjLv1EZakAU78qjZugwpWh5r%2FyAWb66i4M%2Fzv7xt6pfskMchaYxe82%2Bo7h7dUp2ZSKAFVD58IZOqDqKtsrGIfMh0TVrJ%2BD6S4AO7Npw%3D%3D&
channelID=00100&
protocol=https%3A&
timestamp=1543913190646
返回結果:
{“assertAcceptURL”:“https://service.bj.10086.cn/ss/check/checklogin.do",“code”:“6002”,“desc”:“短信隨機碼不正確或已過期,請重新獲取”,“islocal”:false,“result”:"8”}‘’
成功返回結果:
{“artifact”:“775ee16bf81d44cd9cb74dbe012e2bb9”,“assertAcceptURL”:“https://service.bj.10086.cn/ss/check/checklogin.do",“code”:“0000”,“desc”:“認證成功”,“islocal”:false,“result”:“0”,“uid”:"b8375837f42b4d10b5d60bd07140cd41”}
成功響應頭部
Server: NGCA Date: Fri, 07 Dec 2018 02:23:17 GMT Content-Type: application/json Content-Length: 224 Connection: keep-alive P3P: CP=CAO PSA OUR Set-Cookie: cmccssotoken=3c6d70c5a0d44c0d84fc4b28d56121e4@.10086.cn;domain=.10086.cn;secure;HTTPOnly; Set-Cookie: is_login=true; domain=.10086.cn; path=/ Set-Cookie: defaultloginuser_p=izr73fwOUuimT7R+YElqbvQdIEKrmWCpu49KY4pe7cglQnOlbxDN0nqcpR0yt5widFM35Cm3y3C+ek+3KUzXWSMTsRVyT13VInOal6sQlEY+dvBVErR/ksPv5W6XILGzNIChi3gihwmhVzzoGOae/XnI0P2PMrtH+b7lYnDUq3ONwSyqpJkEqg/LuT1QHsyO; domain=.10086.cn; expires=Tue, 05-Feb-2019 02:23:17 GMT; path=/ Set-Cookie: c=3c6d70c5a0d44c0d84fc4b28d56121e4; domain=.10086.cn; path=/ Set-Cookie: verifyCode=b5ef20b4f178b8c564580d387068f84456d8981f; domain=.10086.cn; expires=Sun, 06-Jan-2019 02:23:17 GMT; path=/ Set-Cookie: CITY_INFO=100|10;domain=.10086.cn;path=/;expires=Mon, 29-Jun-2015 06:11:17 GMT服務密碼登錄:
rememberMe=1&
accountType=01&
pwdType=04&
account=15120099383&
password=RBzLoOr8%2BEoWCRrVhB9bzscrthrgy8PpPRbX2rEoljhYQio7cY0L3gaNt1wc83oAork9xkt6pZKnYtM9KrsLaZGj4nZwmxvAkjDUWKnnNHfaX1hFREAKPnmYX2CcQfekxavJNF8y%2Ffq3shIr9cMNz1S5yHBMAiMTJXRnQjoSpFKvhlaat0vE%2BFod7OcUw4jGFJU96Beto32KpftXE%2FpnTZByKVakU%2Buc4evmv2pXELdzjxvFg5DquM7lC0hJQyfH9jRvkf9tWRx3JBpjS3Mw%2FGxvU5HoOGa2WcOrw5moqha%2FGfpNF3ljyO683uJtdMhirjAl%2BJEx3l4AnGOttaBN0w%3D%3D&inputCode=ec3enh&
channelID=00100&
protocol=https%3A&
timestamp=1543914352613
返回結果:
{“assertAcceptURL”:“https://service.bj.10086.cn/ss/check/checklogin.do",“code”:“3003”,“desc”:“密碼格式不正確”,“islocal”:false,“result”:"3”}
GET https://shop.10086.cn/i/apps/serviceapps/userinfo/index.html HTTP/1.1
Referer: https://shop.10086.cn/i/?f=home&welcome=1543995318634
獲取個人信息 HTML 頁面后發現,真正的個人信息沒有顯示,猜測可能是由后續的請求,經過 json格式傳輸過來,然后渲染到 HTML 頁面中的,所以需要尋找后續的請求,找到傳輸個人信息的那個請求,對其響應進行解析,以獲得個人信息。
GET https://shop.10086.cn/i/v1/cust/info/18810463954?_=1544105986759 HTTP/1.1
expires: 0
If-Modified-Since: 0
X-Requested-With: XMLHttpRequest
Referer: https://shop.10086.cn/i/?f=home&welcome=1544105983217
Cookies:
inx=myordersinx2=returnorderqryssologinprovince=100WT_FPC=id=224d14deac405147d0c1544024541797:lv=1544105981117:ss=1544105891967CaptchaCode=ewpKQT rdmdmd5=5ACD0D34FE5F73968FECBBF3EDFFF036 sendflag=20181206221832606166 cmccssotoken=c8b0b2b519164540b7ac13b508a977e6@.10086.cn is_login=true defaultloginuser_p=izr73fwOUuimT7R+YElqbvQdIEKrmWCpu49KY4pe7cglQnOlbxDN0nqcpR0yt5widFM35Cm3y3C+ek+3KUzXWSMTsRVyT13VInOal6sQlEY+dvBVErR/ksPv5W6XILGzNIChi3gihwmhVzzoGOae/WylVJZ23CzjEUtqSayAI0mNwSyqpJkEqg/LuT1QHsyO c=c8b0b2b519164540b7ac13b508a977e6 verifyCode=3f09662cce2a8538a829013536a708b5382663bb CmLocation=100|100 CmProvid=bj WT_FPCN=id=224b0a687be765cde6b1544105967791:lv=1544105979809:ss=1544105967791key4IE89=6F52B8387E5703C82D8B135C15E37355DD3D22E73C5F79A1FD104F874CF935A4E16CA9A09E398B94DBE173D44BBDC841 jsessionid-echd-cpt-cmcc-jt=F8F06CDBCACFB4EFD0B10CA7B96714F4 collect_id=ejh1w2lt7tem5ocgh1hculkyciytdam9成功響應:
{"data":{"remark":null,"name":"xx格","brand":"03","level":"100","status":"00","inNetDate":"20170910192752","netAge":"1年3個月","email":null,"address":"陜西省寧陜縣城關鎮河西街12號","zipCode":null,"contactNum":"18810463954","starLevel":"0","starScore":"35","starTime":"20191031","realNameInfo":"1","vipInfo":null,"inNetDay":null},"retCode":"000000","retMsg":"成功","sOperTime":"20181206221944"}下載 org.json 的 jar 包
https://search.maven.org/search?q=g:org.json AND a:json&core=gav
JSONObject json = new JSONObject(jsonStr); JSONObject data = json.getJSONObject("data");name = "姓名: " + data.getString("name"); address = "地址: " + data.getString("address"); netAge = "網齡: " + data.getString("netAge"); contactNum = "賬號: " + data.getString("contactNum");總結
- 上一篇: DNN(深度神经网络)
- 下一篇: 关于adrduino HX711库的解析