使用 cookie

Postman 的 cookie 管理器使您能够查看和编辑与不同域相关联的 cookie。您可以为域手动创建 cookie,也可以使用 Postman 代理或 Postman 拦截器捕获 cookie 。然后,您可以在 Postman 中发送请求时使用存储在 cookie jar 中的 cookie。

要关闭随请求发送 cookie,请在请求的“设置”选项卡中关闭 cookie jar 开关。

内容

什么是饼干?

计算机cookie更正式地称为 HTTP cookie、Web cookie、Internet cookie 或浏览器 cookie。该名称是“magic cookie”的缩写版本,它是一个术语,指的是计算机接收并发送回而不更改或更改它的数据包。

cookie 通常包含两个数据:每个用户的唯一 ID 和站点名称。Cookie 使网站能够在您重新访问它们时检索这些信息,以便它们能够记住您和您的偏好,并根据这些信息为您定制页面内容。如果没有 cookie,您必须在离开网站后重新登录,或者如果您不小心关闭了网页,则必须重建您的购物车。这使得 cookie 成为互联网体验的重要组成部分。

要在 Postman 中管理 cookie,请打开一个请求并选择发送按钮下的Cookie链接。

饼干链接

管理 Cookie窗口显示域列表以及与每个域关联的 cookie 。如果要查看列表中不存在的域的 cookie,可以添加域

管理 cookie

创建 cookie

要为域添加新 cookie,请选择域下方的+ 添加 Cookie 。将创建一个符合HTTP 状态管理标准的预生成 cookie 字符串。

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

Postman 支持以下属性:

  • cookieName , cookieValue : cookie 的名称和存储在其中的值。
  • :邮递员将发送 cookie 的域。
  • Path:cookie 被限制到的 URL 路径。如果路径是/,cookie 将被发送到指定域中的所有请求。
  • HttpOnly:如果存在,则页面上运行的客户端脚本将无法访问 cookie(例如,document.cookie在 JavaScript 中)。cookie 只会添加到发出的请求中的 cookie 标头中。该字段对 Postman 的行为没有影响。
  • Secure:如果存在,cookie 仅在 URL 开头时发送,https://并且不会通过不安全的连接发送。
  • Expires:cookie 过期且不再由 Postman 发送的时间。

选择保存将 cookie 保存到相关域下的 cookie 存储中。

您还可以使用Set-Cookie 标头在响应中添加或编辑 cookie 。

通过请求发送 cookie

当您向已添加 cookie 的域发出请求时,cookie 将自动出现在您的请求标头选项卡中。如果 cookie 不可见,请选择隐藏以显示自动生成的标题。

饼干头

您不能直接在“标”选项卡中覆盖 cookie 标头。在 cookie 管理器中编辑 cookie,或删除 cookie 并手动设置请求标头。您可以在 cookie 管理器以及Headers选项卡中添加 cookie,Postman 将在发送请求之前合并 cookie。

添加域

如果要查看或添加 cookie 管理器中不存在的域的 cookie,您可以添加域。要添加新域,请在框中输入域名(不要包含端口号或http://),然后选择添加域。然后,您可以为新域添加 cookie。

要更新域的现有 cookie,请选择要编辑的 cookie。您可以编辑任何属性,然后选择保存以更新。

要删除域和与其关联的所有 cookie,请选择关闭图标域旁边的。要删除单个 cookie,请选择 cookie关闭图标旁边的。

在脚本中访问 c​​ookie

当您将域添加到允许列表时,可以在脚本中访问该域的 cookie。

要将域添加到白名单:

  1. 打开一个请求并选择发送按钮下的Cookies链接。
  2. Manage Cookies窗口中,选择Domains Allowlist
  3. 输入要允许的域并选择添加

以编程方式创建 cookie

您可以通过编程方式创建和删除 cookie,而不是依赖图形界面。这使您可以更好地控制 cookie。

对 cookie 进行任何类型的操作的第一步是创建一个cookie jar,一个包含 cookie 的对象以及用于对 cookie 进行操作的方法。

要创建 cookie jar,请使用该pm.cookies.jar()方法。这将创建一个对象来包含 cookie 和访问它们的方法。

const cookieJar = pm.cookies.jar();

创建 cookie jar 后,您可以将 cookie 放入其中。.set()使用该函数设置 cookie 。这个函数接受一个 URL、一个 cookie 名称和一个 cookie 值:

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

您还可以使用以下函数设置一个PostmanCookie或其兼容的 cookie 对象:.set()

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

要检索 cookie,请使用该.get()函数。此函数采用 URL 和所需 cookie 的名称。它返回 cookie 的值。

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

获取所有饼干

要获取 cookie jar 中特定 URL 的所有 cookie,请使用该.getAll()函数。此函数接受一个 URL 并返回该 URL 的所有 cookie:

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

要删除 cookie,请使用该.unset()功能。这个函数接受一个 URL 和要删除的 cookie 的名称:

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

删除所有 cookie

要清除 URL 的所有 cookie,请使用该.clear()功能。此函数获取您要为其删除 cookie 的 URL。该.clear()函数会删除特定 URL 的所有 cookie,但不会删除 jar 中的所有 cookie,因为 cookie jar 中可能有多个 URL 的 cookie。

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

尚不支持的属性

Postman 不支持的以下属性:

  • SameSite
  • Cookie 前缀:
    • __Secure-
    • __Host-

同步 cookie

Postman 可以使用 Postman 代理或 Postman 拦截器为浏览器或客户端应用程序捕获 cookie。对于您选择的域,捕获的 cookie 会与 Postman cookie jar 持续同步。这使您可以使用浏览器或客户端应用程序中的任何身份验证会话在 Postman 中进行 API 调用。

了解有关使用 Postman 代理或 Postman 拦截器捕获 cookie 的更多信息