Postman 使用 cookie

2023-04-03 11:18 更新

Postman 的 cookie 管理器使您能夠查看和編輯與不同域關(guān)聯(lián)的 cookie。您可以為域手動(dòng)創(chuàng)建 cookie,也可以使用 Postman 代理或 Postman 攔截器捕獲 cookie 。然后,您可以在 Postman 中發(fā)送請(qǐng)求時(shí)使用存儲(chǔ)在 cookie jar 中的 cookie。

要關(guān)閉隨請(qǐng)求發(fā)送 cookie,請(qǐng)選擇請(qǐng)求的“設(shè)置”選項(xiàng)卡,然后選擇“禁用 cookie jar”。

什么是 cookie?

計(jì)算機(jī)cookie更正式地稱為 HTTP cookie、網(wǎng)絡(luò) cookie、互聯(lián)網(wǎng) cookie 或?yàn)g覽器 cookie。該名稱是“魔術(shù)餅干”的縮寫版本,“魔術(shù)餅干”是計(jì)算機(jī)接收數(shù)據(jù)包然后在不更改或更改的情況下發(fā)回的術(shù)語(yǔ)。

Cookie 通常包含兩部分?jǐn)?shù)據(jù):每個(gè)用戶的唯一 ID 和網(wǎng)站名稱。Cookie 使網(wǎng)站能夠在您再次訪問它們時(shí)檢索這些信息,以便它們能夠記住您和您的偏好,并根據(jù)這些信息為您定制頁(yè)面內(nèi)容。如果沒有 cookie,您在離開網(wǎng)站后必須重新登錄,或者在關(guān)閉網(wǎng)頁(yè)后重新構(gòu)建您的購(gòu)物車。這使得 cookie 成為互聯(lián)網(wǎng)體驗(yàn)的重要組成部分。

使用 cookie 管理器

要在 Postman 中管理 cookie,請(qǐng)打開一個(gè)請(qǐng)求,然后選擇Cookie(在Send下)。

餅干鏈接

“管理 Cookie”窗口顯示域列表以及與每個(gè)域關(guān)聯(lián)的 cookie。如果您想查看列表中不存在的域的 cookie,您可以添加一個(gè)域。

管理 cookie

創(chuàng)建 cookie

要為域添加新的 cookie,請(qǐng)選擇+ 添加 Cookie。創(chuàng)建符合HTTP 狀態(tài)管理標(biāo)準(zhǔn)的預(yù)生成 cookie 字符串。

<cookieName>=<cookieValue>; path=/; domain=.domain.com; HttpOnly; Secure; Expires=Tue, 19 Jan 2038 03:14:07 GMT;

Postman 支持以下屬性:

  • cookieName、cookieValue - cookie 的名稱和存儲(chǔ)在其中的值。
  • 域- Postman 將 cookie 發(fā)送到的域。
  • 路徑- cookie 被限制到的 URL 路徑。如果路徑為/,cookie 將被發(fā)送到指定域中的所有請(qǐng)求。
  • HttpOnly - 如果存在,頁(yè)面上運(yùn)行的客戶端腳本將無法訪問該 cookie(例如,在document.cookieJavaScript 中)。cookie 只會(huì)被添加到發(fā)出的請(qǐng)求中的 cookie 標(biāo)頭中。該字段對(duì) Postman 的行為沒有影響。
  • 安全- 如果存在,則 cookie 僅在 URL 以 開頭時(shí)發(fā)送https://,并且不會(huì)通過不安全的連接發(fā)送。
  • Expires - cookie 將過期并且不會(huì)被 Postman 發(fā)送的時(shí)間。

選擇保存將 cookie 保存到相關(guān)域下的 cookie 存儲(chǔ)中。

您還可以在帶有Set-Cookie 標(biāo)頭的響應(yīng)中添加或編輯 cookie 。

通過請(qǐng)求發(fā)送 cookie

當(dāng)您向已添加 cookie 的域發(fā)出請(qǐng)求時(shí),cookie 將自動(dòng)出現(xiàn)在您的請(qǐng)求標(biāo)頭選項(xiàng)卡中。如果 cookie 不可見,請(qǐng)選擇隱藏以顯示自動(dòng)生成的標(biāo)頭。

曲奇頭

您不能直接在“標(biāo)頭”選項(xiàng)卡中覆蓋 cookie 標(biāo)頭。在 cookie 管理器中編輯 cookie,或刪除 cookie 并手動(dòng)設(shè)置您的請(qǐng)求標(biāo)頭。您可以在 cookie 管理器和Headers選項(xiàng)卡中添加 cookie,Postman 會(huì)在發(fā)送請(qǐng)求之前合并 cookie。

添加域

如果您想查看或添加 cookie 管理器中不存在的域的 cookie,您可以添加一個(gè)域。要添加新域,請(qǐng)?jiān)诳蛑休斎胗蛎ú灰ǘ丝谔?hào)或http://),然后選擇添加域。然后您可以為新域添加 cookie。

更新 cookie

要更新域的現(xiàn)有 cookie,請(qǐng)選擇您要編輯的 cookie。您可以編輯任何屬性,然后選擇保存以更新。

刪除 cookie

要?jiǎng)h除域和所有與之關(guān)聯(lián)的 cookie,請(qǐng)選擇 關(guān)閉圖標(biāo) 域旁邊的。要?jiǎng)h除單個(gè) cookie,請(qǐng)選擇 關(guān)閉圖標(biāo) cookie 旁邊的。

在腳本中訪問 c??ookie

當(dāng)您將域添加到允許列表時(shí),可以在腳本中訪問該域的 cookie。

要將域添加到白名單,請(qǐng)執(zhí)行以下操作:

  1. 打開一個(gè)請(qǐng)求,然后選擇Cookies(在Send下)。
  2. 在Manage Cookies窗口中,選擇Domains Allowlist。
  3. 輸入要允許的域并選擇添加。

以編程方式創(chuàng)建 cookie

您可以通過編程方式創(chuàng)建和刪除 cookie,而不是依賴于圖形界面。這使您可以更好地控制 cookie。

對(duì) cookie 執(zhí)行任何類型操作的第一步是創(chuàng)建一個(gè)cookie jar,一個(gè)包含 cookie 的對(duì)象和將用于對(duì) cookie 進(jìn)行操作的方法。

創(chuàng)建一個(gè)餅干罐

要?jiǎng)?chuàng)建一個(gè) cookie jar,請(qǐng)使用該pm.cookies.jar()方法。這將創(chuàng)建一個(gè)對(duì)象來包含 cookie 和訪問它們的方法。

const cookieJar = pm.cookies.jar();

創(chuàng)建一個(gè) cookie

創(chuàng)建 cookie jar 后,您可以將 cookie 放入其中。使用函數(shù)設(shè)置 cookie .set()。此函數(shù)接受一個(gè) URL、一個(gè) cookie 名稱和一個(gè) cookie 值:

// create a cookie
cookieJar.set(URL, cookie name, cookie value, callback(error, cookie));

您還可以PostmanCookie使用以下函數(shù)設(shè)置一個(gè)或其兼容的 cookie 對(duì)象.set():

// create a PostmanCookie
cookieJar.set(URL, { name: cookie name, value: cookie value, httpOnly: true }, callback (error, cookie));

得到一個(gè)餅干

要檢索 cookie,請(qǐng)使用該.get()函數(shù)。此函數(shù)采用 URL 和所需 cookie 的名稱。它返回 cookie 的值。

// get the created cookie
cookieJar.get(URL, cookie name, callback(error, cookie));

得到所有的餅干

要獲取 cookie jar 中特定 URL 的所有 cookie,請(qǐng)使用該.getAll()函數(shù)。此函數(shù)接受一個(gè) URL 并返回該 URL 的所有 cookie:

// get the created cookies
cookieJar.getAll(URL, callback(error, cookies));

刪除 cookie

要?jiǎng)h除 cookie,請(qǐng)使用該.unset()函數(shù)。此函數(shù)接受一個(gè) URL 和要?jiǎng)h除的 cookie 的名稱:

// Delete the created cookie
cookieJar.unset(URL , cookie name, callback (error));

刪除所有cookie

要清除 URL 的所有 cookie,請(qǐng)使用該.clear()函數(shù)。此函數(shù)采用您要為其刪除 cookie 的 URL。該.clear()函數(shù)刪除特定 URL 的所有 cookie,但不會(huì)刪除 jar 中的所有 cookie,因?yàn)?cookie jar 中可能有多個(gè) URL 的 cookie。

// delete the set cookies
cookieJar.clear(URL, callback (error));

依次刪除和設(shè)置cookie

要清除 URL 的所有 cookie .clear(),然后將 cookie 放入 cookie jar .set(),請(qǐng)使用回調(diào)函數(shù)。

函數(shù)調(diào)用異步執(zhí)行。使用回調(diào)函數(shù)確保函數(shù)按順序執(zhí)行:

cookieJar.clear(URL, (error) => {
    jar.set(URL, cookie name, cookie value, callback(error, cookie));
});

不支持的屬性

Postman 不支持以下屬性:

  • SameSite
  • Cookie 前綴:__Secure-__Host-

同步 cookie

Postman 可以使用 Postman 代理或 Postman 攔截器為瀏覽器或客戶端應(yīng)用程序捕獲 cookie。對(duì)于您選擇的域,捕獲的 cookie 會(huì)持續(xù)與 Postman cookie jar 同步。這使您能夠使用瀏覽器或客戶端應(yīng)用程序中的任何身份驗(yàn)證會(huì)話在 Postman 中進(jìn)行 API 調(diào)用。

了解有關(guān)使用 Postman 代理或 Postman 攔截器捕獲 cookie 的更多信息


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)