邮递员与cURL请求的行为不一致

时间:2017-08-23 09:39:11

标签: postman

我从Swagger编辑器以JSON下载了以下API: PUT http://10.37.64.243/m2m/fim/items/fim:device:manager/operations/getAllDeviceTypes?exclude= {{exclude}} with exclude是一个环境变量,设置为:href,metadata,name,arguments

名义使用需要基本身份验证,在这种情况下它可以工作,我得到一个具有预期结果的JSON主体。它适用于Postman(所以我认为我的导入是正确的)

如果未提供身份验证:

    Swagger编辑器中的
  • :名义行为,请求被拒绝,错误代码为401

  • Postman中的
  • :行为不当,我最终得到状态码200,它返回的响应体与验证时的响应体相同

  • 如果我从Postman生成cURL代码片段并从Postman中启动它:名义行为,我得到的错误与我在Swagger编辑器中得到的错误(预期的那个)

为什么Postman的行为与cURL请求不同? 我可能做错了什么,但我无法弄清楚是什么

感谢您的帮助

亚历山大

1 个答案:

答案 0 :(得分:1)

我终于发现服务器返回一个包含身份验证验证的cookie。因此,在有效的身份验证之后,无论请求(有或没有身份验证),它都将被视为已验证。

不幸的是,解决该问题的唯一方法是通过“管理cookie”窗口手动删除cookie。 Postman没有实现擦除它的功能(即使通过pm.cookies和pm.cookies.clear()函数)。

Postman开发人员已经意识到这一点,但是没有安排此功能...

编辑:此功能遵循https://github.com/postmanlabs/postman-app-support/issues/3312