圖書館自動續借系統

公 共 圖 書 館 的 逾 期 電 郵 通 知 , 竟 然 要 過 期 15 日 後 發 出 , 除 使 大 意 讀 者 ( 像 我 ) 大 量 進 貢 金 錢 恐 怕 別 無 理 由 。 是 以 構 思 自 動 續 借 系 統 , 版 本 暫 為 0.1Beta 。

花 了 一 點 時 間 google , 得 到 用 JAVA 結 合 httpclient 套 件 模 擬 POST 及 GET METHOD 的 想 法 , 只 要 有 這 兩 個 METHOD 應 該 可 以 完 全 仿 真 瀏 覽 器 的 動 作 了 。 至 於 httpclient 如 何 安 裝 及 使 用 則 是 後 話 。

了 解 一 下 圖 書 館 的 續 借 系 統 是 如 何 運 作 的 。 這 時 XAMPP 很 管 用 , 可 以 幫 助 測 試 一 下 圖 書 館 的 " 黑 箱 子 " ─ ─ 因 為 裡 頭 的 伺 服 器 端 腳 本 是 無 從 得 知 的 , 只 有 嘗 試 丟 參 數 入 去 看 它 如 何 回 應 。 ( 順 提 一 帶 , 圖 書 館 系 統 的 HTML 碼 明 顯 是 人 手 寫 的 , 簡 潔 整 齊 漂 亮 , 對 比 起 來 現 時 BLOG 、 FACEBOOK 的 代 碼 真 是 噁 心 啊 … ) 雖 然 是 CGI 寫 成 的 , 但 對 於 客 戶 端 無 礙 , 用 的 還 是 POST 及 GET METHOD 。 結 果 如 下 :

a. 登 入 頁 : http://libcat.hkpl.gov.hk/webpac_cjk/login.cgi?
圖 書 證 號 碼 變 數 : barcode_prompt
身 份 證 號 碼 變 數 : masc_prompt
個 人 密 碼 變 數 : pin_prompt
表 單 方 式 : POST METHOD
表 單 會 送 到 http://libcat.hkpl.gov.hk/webpac_cjk/login.cgi?
登 入 後 會 自 動 轉 到 https://libcat.hkpl.gov.hk/webpac_cjk/patintro.cgi? + 一 串 代 碼 , 這 串 代 碼 可 理 解 成 類 似 cookies 般 代 表 已 成 功 登 入 的 標 誌 , 稱 之 為 usercode 。

b. 續 借 頁 : https://libcat.hkpl.gov.hk/webpac_cjk/itemsout.cgi? + usercode
這 一 頁 相 當 古 怪 , 一 直 無 法 摸 清 其 運 作 方 式 。 首 先 , checkboc 變 數 並 非 用 陣 列 寫 成 , 表 單 發 出 的 變 數 只 有 一 個 renewme ; 再 者 , 表 單 送 出 的 方 式 不 是 submit 而 是 FOR 迴 圈 中 的 " return true " 。 我 猜 想 實 際 運 作 中 應 該 每 次 for 迴 圈 都 送 出 1 次 POST 請 求 , 然 而 這 又 無 法 解 釋 " 全 部 續 借 " 的 運 作 。 也 罷 , 總 之 以 POST MEHTOD 送 出 renewme 變 數 , 裡 頭 記 著 書 的 條 碼 就 可 以 成 功 續 借 , 因 此 可 以 以 下 方 式 取 代 :
續 借 資 料 條 碼 變 數 : renewme
表 單 方 式 : POST METHOD
表 單 會 送 到 https://libcat.hkpl.gov.hk/webpac_cjk/itemsout.cgi? + usercode , 並 會 返 回 續 借 頁 。

JAVA 代 碼 稍 後 補 上 。

沒有留言:

發佈留言