【发布时间】:2019-10-04 00:31:59
【问题描述】:
这应该很简单,但是对于我的生活,我无法形成我的 cURL 请求,以便 Paylocity 接受它。 https://www.paylocity.com/integrations/apis/
我不断收到带有 json 响应 {"error":"invalid_client"} 的 HTTP/1.1 400 Bad Request,我认为这表明我发送的数据格式不正确。如果我弄乱了数据,我可以获得不同的响应代码。在这种情况下,我只是想获得一个不记名令牌。
curl -v https://apisandbox.paylocity.com/IdentityServer/connect/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Authorization:Basic <base64 encoded clientid:clientsecret>' \
-d 'grant_type = client_credentials&scope = WebLinkAPI'
上面有什么明显的错误吗?
【问题讨论】:
-
payload 中的这些空格是故意的还是只是为了便于阅读?通常内容中不应有空格,因为这需要进行正确的格式编码。您也可以直接将
Authorization标头替换为直接--user clientid:clientsecret,curl 将为您添加base64 编码的基本授权标头。虽然 curl 在通过-d提供有效负载时应该自动使用POST,但我更喜欢通过-X POST明确设置它以确保。 -
@RomanVottner 空格不应该在那里,在测试时我们没有空格。谢谢你指出这一点。我们终于弄明白了,我的程序员碰巧一直在用 Windows 上的 postman 解决另一个问题(我们通常在 Linux 中工作,去看看)。显然 windows 编译邮递员将显示与 Linux 不同的输出。我们能够使用这些信息来正确格式化正文。 (见我的回答)