作者tsaiedward (菜渣)
看板java
標題[問題] 登入網頁並存取資料
時間Tue Apr 12 00:18:38 2016
各位前輩好,小弟這學期才開始寫Java,還算是新手,還請多多指教
最近興起了想要開始研究Android App的念頭
打算從寫個登入我們學校的網路大學,並存取登入後的資料的App開始下手
然而光是在研究怎麼登入這一步就卡住了
不才其實基本上一點HTML或是Javascript的基礎都沒有,
在網頁source code裡面撞了許久,摸索了些頭緒,可是有些迷惑,因此前來向前輩們討教
目前我找到的 我以為是送出登入帳密的source code是這裡
<form autocomplete="off" method="post"
action="
http://cu.nsysu.edu.tw/login.php" id="loginForm" name="loginForm"
onsubmit="return checkLogin();" target="_self">
而checkLogin()寫在login.js內,code如下
function checkLogin()
{
/*
if (typeof MSG_NEED_USERNAME == "undefined")
var MSG_NEED_USERNAME = "Please fill username";
if (typeof MSG_NEED_PASSWORD == "undefined")
var MSG_NEED_PASSWORD = "Please fill password";
*/
var node = document.getElementById("loginForm");
if (node == null) return false;
if (node.username.value == "")
{
alert(MSG_NEED_USERNAME);
node.username.focus();
return false;
}
if (node.password.value == "")
{
alert(MSG_NEED_PASSWORD);
node.password.focus();
return false;
}
else
{
var pwdmask = "********************************";
/* NSYSU客製 begin 修正密碼加密方式(因為本身不存密碼, 到後端會解不開) */
// var md5key = MD5(node.password.value);
// var cypkey = md5key.substr(0,4) + node.login_key.value.substr(0,4);
var cypkey = node.login_key.value.substr(0,8);
/* NSYSU客製 begin end */
node.encrypt_pwd.value = stringToBase64(des(cypkey, node.password.value, 1));
node.password.value = pwdmask.substr(0,node.password.value.length);
}
return true;
}
小弟想知道的是 :
1. 我目前的認知有沒有錯誤
2. 假如我要進行"送出帳密並登入"的動作,是要使用httpclient去對應loginForm
像
https://www.ptt.cc/bbs/java/M.1206936382.A.D75.html 這篇這樣嗎 ?
3. 假如2沒有錯的話,那麼登入後的資料抓取也是透過使用httpclient嗎 ?
懇請各位前輩協助解惑,感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.180.34
※ 文章網址: https://www.ptt.cc/bbs/java/M.1460391521.A.B6A.html
推 kiwatami: 其實就是知道要傳什麼值到什麼欄位,傳到哪個頁面 04/12 07:51
→ kiwatami: 然後打開cookiestore的功能 以你這個例子 04/12 07:51
→ kiwatami: 就是先將密碼加密後才傳送 其他可能還有一些驗證用欄位 04/12 07:51
→ kiwatami: 也要一併傳送 因為那就是避免機器人的欄位 04/12 07:51
→ kiwatami: 如果是用Ajax產生的值 那你還需要找可以執行js的套件 04/12 07:51
→ kiwatami: 重點是你要猜到他們在server端做了什麼處理與驗證 04/12 07:51
→ kiwatami: 不論正確與否記得將結果output出來 04/12 07:51
→ kiwatami: 登入後就跟一般爬網頁一樣了 04/12 07:51
推 aw038: 借問,後學目前也在研究這個,傳送帳密過去但回傳500狀態碼 04/13 00:59
→ aw038: ,因此我在想是不是因為沒有加密傳過去,想請問各位先學如 04/13 00:59
→ aw038: 何處理? 04/13 00:59
推 swallowcc: 500應該是exception了,抓log出來看死在哪一句吧... 04/13 01:55