rod*_*pes 14 api curl gitlab gitlab-api
这是我试过的:
curl http://git.ep.petrobras.com.br/api/v3/session --data-urlencode 'login=myUser&password=myPass'
Run Code Online (Sandbox Code Playgroud)
回答:
{"message":"401 Unauthorized"}
Ste*_*n V 17
问题是data-urlencode
CURL选项.因为它是一个HTTP POST你不需要URL编码的数据,实际上是编码&
成&
,造成您的问题.而是使用该--data
选项.
curl http://git.ep.petrobras.com.br/api/v3/session --data 'login=myUser&password=myPass'
Run Code Online (Sandbox Code Playgroud)
另外,要小心通过普通HTTP发送凭据.它很容易被嗅到.
这是如何:
$ curl http://git.ep.petrobras.com.br/api/v3/session/ --data-urlencode 'login=myUser' --data-urlencode 'password=myPass'
Run Code Online (Sandbox Code Playgroud)
如果您的用户名或密码包含必须以urleencoded编码的字符,则Steven指出的解决方案不起作用.该name=content
格式将进行urlencode的content
部分(name
部分已被url编码,但login
并password
没有关系).
要实际检索private_token
你可以将curl的输出传递到jq,如下所示:
$ curl [as above] | jq --raw-output .private_token
x_the_private_token_value_x
Run Code Online (Sandbox Code Playgroud)
这样您就可以在shell脚本中轻松使用它.
此外,正如Steven已经指出的那样,请改用https,这样您的密码就不会通过网络以明文形式传输.
归档时间: |
|
查看次数: |
24302 次 |
最近记录: |