如何請求一個需要登陸才能訪問的接口(基于cookie)—apipost
請求一個需要登錄才能訪問的接口(基于COOKIE)
在后臺在開發、調試接口時,常常會遇到需要登陸才能請求的接口。
比如:獲取登陸用戶的列表,此時,我們就需要模擬登陸狀態進行接口調試了。如圖:
今天,我們講解利用ApiPost的環境變量,解決這種需要先登錄再請求的接口依賴情況。
ApiPost提供了2種方案:
方案I、開啟全局cookie
apipost提供了開啟全局cookie的功能。開啟路徑如下:
右下角Cookie管理器-打開全局Cookie按鈕
開啟后,我們請求登陸接口后,后續接口都會共享“已登陸”的狀態,即共享了登陸接口返回的cookie。
如下所示:
第一步:請求登陸接口
第二步:訪問其他接口,則都處于了登陸狀態
方案II、利用環境變量,先請求登陸接口,再請求后續接口
這種方案是針對關閉了全局cookie功能的情況。
1、請求登陸接口,將響應COOKIE賦值給變量:
為了處于登陸態,需要先請求登陸接口,此舉目的是為了模擬用戶的登陸行為,獲取需要的登陸參數(這里是Cookie)。
將登陸接口返回的PHPSESSID(這個是SessionID,PHPSESSID是針對PHP作為后端接口的SessionID變量名,其他語言的變量名可能不同)設為環境變量。
apt.variables.set("login_var", response.cookies["PHPSESSID"]);
注:更多響應結果綁定變量可以參考 “響應以及斷言”一節和“后執行腳本” 一節。
2、調用變量,手動給header添加Cookie參數
接著返回接口,進到header選項,參數值選擇cookie,參數值輸入: PHPSESSID={{login_var}}。
此舉是為了利用登陸接口返回的Cookie偽造請求的PHPSESSID。
如圖:
或者你也可以定義個全局header,這樣就不用每個接口都設置一遍了:
登錄實現原理
利用ApiPost發送Cookie,使服務器識別已登錄用戶的Cookie。
web前端 單元測試 網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。