我正在尝试关注timekit.io中的文档。我正在尝试做一些简单的事情,如发送curl请求进行基本身份验证,如文档this section中所示。我已将Timekit-App:name-of-app
替换为我在appkit帐户的app-settings中找到的app的名称。我还替换了email
& password
使用我用来登录我帐户的那个。
我只是简单地将curl命令复制并粘贴到我的终端中,然后我收到一条回复说{"error":"Content-type should be json!"}
我不确定我是不是应该按原样复制和粘贴它,或者我可能是什么做错了,但我的理解是我应该在其他一些数据中使用email
和api
令牌获得json响应。
这是我的curl命令。
curl -X POST \
-H 'Timekit-App: jl-fit' \
-d '{
"email": "email@email.com",
"password": "password"
}' \
https://api.timekit.io/v2/auth
答案 0 :(得分:1)
看起来您在他们的文档/示例中发现了一个错误。
您要连接的API需要JSON内容类型,但默认情况下curl
(POST
数据)使用application/x-www-form-urlencoded
。您可以通过以下方式明确添加标题字段来修复它:-H 'Content-Type: application/json'
。
此外,当您使用-d
/ --data
选项时,方法默认为POST
,因此不必明确指定。
所有这些都应该有效:
curl \
-H 'Content-Type: application/json' \
-H 'Timekit-App: jl-fit' \
-d '{"email": "email@email.com", "password": "password"}' \
"https://api.timekit.io/v2/auth"
当有多个参数时,将它们保存在数组中是很方便的(不需要转义换行符)。例如:
args=(
-H 'Content-Type: application/json'
-H 'Timekit-App: jl-fit'
-d '{"email": "email@email.com", "password": "password"}'
"https://api.timekit.io/v2/auth"
)
curl "${args[@]}"