我将用户名和密码传递给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"}
答案 0 :(得分:1)
试试这个
UNAME=$1
PASSWORD=$2
curl --silent -u "${UNAME}:${PASSWORD}" https://example.com/api/check
答案 1 :(得分:1)
块引用 curl --silent -u'blah-blah:youareawesome $ 1234'https://example.com/api/check
这可能是引号上的红色鲱鱼,但您的脚本在$
符号后不接受字符串。
可能需要打包您的用户名&密码在引号中,因为您为脚本提供输入。
答案 2 :(得分:1)
您可以这样使用, 例如:
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
答案 3 :(得分:0)
感谢您的所有答案!!无论出于何种原因,我修改脚本后将用户名和密码作为单独的变量并传递给curl命令工作
CREDS="${USERNAME}:${PASSWORD}"
CURL_CMD="curl --silent -u ${CREDS}"
${CURL_CMD} https://example.com/api/check