你可以認爲我是在寫爬蟲,但其實不是。。。
程序模擬登陸最大的問題就是怎麼保存登陸憑證。針對這個問題瀏覽器就做得很好,我們可以參考瀏覽器的做法。本質上,瀏覽器也是程序,只不過它做得夠多。
當用戶第一次訪問網站的時候,後臺會生成一個session,同時將一個字符串JSESSIONID作爲響應頭返回給前端。瀏覽器這個時候會把這個字符串JSESSIONID存儲起來,然後之後的每一次請求都會在請求頭中帶上這個字符串JSESSIONID。這樣後臺就可以根據這個字符串找到之前的那個session了,不會再創建一個新的session。至於用戶有沒有登陸只要判斷session中有沒有用戶信息就可以了。所以這就是爲什麼無狀態的http請求能保留登陸狀態的根本原因。
那我們用程序模擬登陸呢?如果你不做保存JSESSIONID這個操作,程序執行的每一次請求都會後端都會生成一個新的session,所以即使你登陸成功了也沒有用。這樣一分析,我們要做的就很簡單了。
發送登陸請求,截取"Set-Cookie"響應頭
發送之後的請求前先添加"Cookie"請求頭