欢迎各位兄弟 发布技术文章
这里的技术是共享的
curl -X POST -H "Authorization: Basic MTY3MDI3NzA6T44442hhcmyuiopoiuy=" -H "Content-Type: application/json" --insecure "https://aaaa.bbbb.com:443/uapi/auth/tokens" 在 shell 中 能正常执行 ,但是在 postman 中报错
我帮你分析了一下你截图里的请求和 curl
命令,关键问题是 Authorization 头不一致。
在 shell 里你是用的:
而在 Postman 里你用的是:
区别:
curl 用的是 Basic Auth(Authorization: Basic ...
)
Postman 用的是 Bearer Token(Authorization: Bearer ...
)
这就是为什么在 shell 能正常返回,而在 Postman 报 400 Bad Request
的原因。
✅ 解决办法:
在 Postman 里把 Header 改成和 curl 一样:
或者在 Postman 的 Authorization 标签页里选择:
Type = Basic Auth
Username / Password 填对应的账号和密码(Postman 会自动转成 Basic base64(user:pass)
)。
另外要注意:
你已经在 curl 里加了 --insecure
(跳过 SSL 验证),在 Postman 里需要在 Settings → SSL certificate verification 里关掉,或者在请求里点开小锁设置。
我把 Bear 换成了 Basic,,然后 还是报同样的错!
我看到你已经把 Authorization
改成了 Basic,但依然报 400 Bad Request
。
对比 curl 和 Postman 的差异,还可能有以下几个点:
在 curl 里你有明确加:
但你在 Postman 截图里没有设置 Content-Type
,系统自动算的 Content-Length: 0
。
👉 Postman 默认没有发送 Body,所以服务器认为请求格式不对。
解决:
在 Postman 的 Headers 加上:
同时在 Body 里选 raw
,然后内容留空 {}
(因为有的接口即使不需要参数也要有一个空 JSON)。
curl 里用了 --insecure
(忽略 SSL 证书验证)。
Postman 默认是验证证书的。
👉 你需要在 Postman 设置里关掉:
进入 File -> Settings -> General -> SSL certificate verification
→ 关闭
否则可能出现奇怪的 400/403。
有些 JAMF API 的 /uapi/auth/tokens
即使是获取 token 也要求 body 是空 JSON {}
,而不是完全没 body。
curl 里虽然没写 body,但可能服务器默认接受;Postman 没 body 时有时会传 Content-Length: 0
,这可能触发 400。
👉 建议在 Postman Body 里放:
Method: POST
URL: https://aaaa.bbbb.com:443/uapi/auth/tokens
Headers:
Authorization: Basic MTY3MDI3NzA6etrgfhjkcmVA23456ty=
Content-Type: application/json
Body → raw → JSON → {}
Settings → 关闭 SSL certificate verification
帮我写一个 Postman 导入 JSON (Collection),你直接导进去就能一键测试
好的 👍 我帮你写一个 Postman Collection JSON,你直接导入 Postman 就可以用。
JamfAuth.postman_collection.json
打开 Postman
左上角 Import → 选择 Raw text
把上面 JSON 粘贴进去 → 点击 Continue → Import
Collection 会出现在左边,点击请求 → 直接 Send
确认在 Settings → General 里关掉 SSL certificate verification(因为 curl 用了 --insecure
)
最后正确使用 Postman 后是下面的这样子的几张图
1)
2)最重要的图
事实上
3)
4)