[英]bash curl username credentials within script
我将用户名和密码传递给 curl 命令以接收来自 api 调用的输出。 不确定出了什么问题,但是 curl 命令可以从命令行运行,但是当我在 bash 脚本中使用相同的 curl 命令时,它没有正确获取凭据。 API 调用因授权错误而失败。 有人可以在这里抛出一些指针吗?
curl --silent -u 'blah-blah:youareawesome$1234' https://example.com/api/check
这是脚本
USERNAME=$1 PASSWORD=$2 curl --silent -u "${USERNAME}:${PASSWORD}" https://example.com/api/check
{"timestamp":1509422967185,"status":401,"error":"Unauthorized","message":"Bad credentials","path":"/api/check"}
试试这个
UNAME=$1
PASSWORD=$2
curl --silent -u "${UNAME}:${PASSWORD}" https://example.com/api/check
Blockquote curl --silent -u 'blah-blah:youareawesome$1234' https://example.com/api/check
这可能是引号上的红鲱鱼,但您的脚本不会接受$
符号后的字符串。
当您输入脚本时,可能需要将您的用户名和密码用引号括起来。
谢谢大家的回答!! 无论出于何种原因,在我修改脚本以将用户名和密码作为单独的变量并传递给 curl 命令之后
CREDS="${USERNAME}:${PASSWORD}" CURL_CMD="curl --silent -u ${CREDS}" ${CURL_CMD} https://example.com/api/check
您可以像这样使用,例如:
curl --location --request POST 'http://119.235.1.63/test' \
--header 'Content-Type: application/json' \
--data-raw '{ "CompanyId":"mafei", "Pword":"mafei123", "SmsMessage":"I am '${USER}'", "PhoneNumber": [ "712955386"] }'
在您的代码中,请使用如下单引号
curl --silent -u "'${USERNAME}:${PASSWORD}'" https://example.com/api/check
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.