postman 官方链接:https://learning.postman.com/docs/postman/sending-api-requests/cookies/

开发接口时,postman作为测试接口的工具非常好用,这里介绍如何使用postman进行cookie管理。

操作步骤:

Cookies

Postman的应用程序提供了 MANAGE COOKIES 模块,可以在域这一级别上管理cookie。如果要使用Postman Interceptor 模块,请参阅Syncing cookies。

您可以随时在当前请求的Settings的菜单中打开 Disable cookie jar,以关闭发送Cookie的功能。

Cookie manager 入口

要打开MANAGE COOKIES 模块,请单击Send按钮下的Cookies链接。

postman 删除es静态模板 postman怎么清除cookie_后端


这将打开MANAGE COOKIES 模块,并显示设置的域列表以及与之关联的cookie。

postman 删除es静态模板 postman怎么清除cookie_postman 删除es静态模板_02

创建cookie

要为一个域添加新的Cookie,单击“Add Cookie”按钮。 这样可以创建根据HTTP状态管理标准预设的cookie字符串,您可以对其进行相应的编辑。单击“ Save”按钮会将其保存到相关域下的cookie列表中。

postman 删除es静态模板 postman怎么清除cookie_后端_03

当您向添加了cookie的域发出请求时,该cookie将自动显示在请求的“ headers”选项卡中:单击“hidden”以查看它。

postman 删除es静态模板 postman怎么清除cookie_postman 删除es静态模板_04

您不能直接在“headers”标签中覆盖预设的Cookie。要改变这个Cookie,改变你在manage Cookie 模块中的设置(或删除cookies然后手动设置你的headers)。您可以使用Cookies控件添加Cookie,也可以在Headers中手动添加Cookie ,Postman会在发送请求之前将两处设置合并。

添加域

如果要为域列表中不存在的域添加cookie,可以在顶部的输入框中输入主机名(不带端口和http://)来添加一个cookie 。单击添加按钮会将其添加到域列表。然后,可以通过选择该域并如上所述输入新的cookie值来为其添加cookie。

postman 删除es静态模板 postman怎么清除cookie_postman 删除es静态模板_05

更新cookie

要更新现有的cookie,在域列表中选中要编辑的域,然后单击要编辑的cookie。您可以编辑任何属性,然后单击“ 保存”进行更新。

postman 删除es静态模板 postman怎么清除cookie_facebook_06

通过Set-Cookie header添加Cookie

您还可以通过响应通过Set-Cookie header 来添加/编辑cookie 。

将域列入白名单以以编程方式访问Cookie

要将域列入白名单以便可以通过编程方式访问Cookie,打开 manage cookie模块的界面,单击左下角的“ Whitelist Domains”,然后输入需要列入白名单的域名并添加即可。

Cookie的编程访问

Postman还允许以编程方式访问cookie,即通过特殊方法创建和操作cookie,而不用依赖于图形界面,从而为用户提供了对cookie的更大程度的控制。

对Cookie执行任何类型的操作的第一步就是创建一个Cookie Jar,该对象将包含Cookie和用于对Cookie进行操作的方法。

创建一个Cookie Jar
要创建“Cookie Jar”,请使用pm.cookies.jar()方法。这将创建一个对象,其中包含cookie和访问它们所需的方法。

const cookieJar = pm.cookies.jar();

创建一个cookie

创建Cookie Jar之后,可以通过以下方法将cookie放入其中:

  1. 使用.set()函数设置cookie ,它需要一个URL,一个cookie名称和一个cookie值。
const cookieJar = pm.cookies.jar(); // create a cookie jar
cookieJar.set(URL, cookie name, cookie value, callback(error, cookie)); //创建一个cookie

也可以使用该.set()函数设置PostmanCookie或其兼容的cookie对象。

const cookieJar = pm.cookies.jar(); // create a cookie jar
cookieJar.set(URL, { name: cookie name, value: cookie value, httpOnly: true }, callback (error, cookie)); //创建一个PostmanCookie

获取一个cookie

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

const cookieJar = pm.cookies.jar(); // create a cookie jar

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

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

获取 所有cookie

获取特定URL的所有cookie,使用.getAll()函数,它获取URL并返回该URL的所有cookie。

const cookieJar = pm.cookies.jar(); // create the cookie jar

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

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

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

删除一个cookie

要删除Cookie,请使用.unset()函数。它带有一个URL和要删除的cookie的名称。

const cookieJar = pm.cookies.jar(); // create the cookie jar
cookieJar.set(URL, cookie name, cookie value, callback(error, cookie)); // create a cookie
cookieJar.unset(URL , cookie name, callback (error)); // Delete the created cookie

删除所有cookie

清除URL的所有cookie,使用clear()方法。它会删除URL的所有cookie。请注意,.clear()将删除特定URL的所有cookie,但不会删除jar中的所有cookie,因为cookie jar中可能有多个URL的cookie。

const cookieJar = pm.cookies.jar(); // create cookie jar
cookieJar.set(URL,first cookie name,first cookie value, callback(error, cookie)); // set one cookie
cookieJar.set(URL,second cookie name,second cookie value, callback(error, cookie)); // set another cookie
cookieJar.clear(URL, callback (error)); // delete the set cookies

不支持的属性

这是Postman尚不支持的两个属性。

  • SameSite
  • Cookie Prefixes * __Secure- * __Host-
    无论何时添加域,Postman都会从浏览器同步该域的所有cookie。例如,输入“ facebook.com”将同步facebook及其所有子域(m.facebook.com)的cookie。
    postman的拦截器扩展可以保持从浏览器到postman的更新(cookie会从浏览器同步到postman,而不是从postman到浏览器)。这可以让你可以安全的使用浏览器中的任何身份验证会话在Postman中进行API调用,而不用担心这些会被postman保存下来。后续的更新(基于cookie或其他属性)和删除也会同步更新。点击域旁边的“ X”,可以将其从同步集中删除。这只会阻止将来的cookie更新被同步-不会删除已经同步到Postman的cookie。