在後臺在開發、除錯介面時,常常會遇到需要登陸才能請求的介面。

比如:獲取登陸使用者的收藏列表,此時,我們就需要模擬登陸狀態進行介面除錯了。如圖:

今天,我們講解利用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。