curl:请求缺少身份验证标头-其中有身份验证标头

curl:请求缺少身份验证标头-其中有身份验证标头,curl,vpn,Curl,Vpn,添加更多上下文:我正在尝试向无缝.gov API发出一个curl请求。在不同的计算机上,相同的curl命令可以工作。但是,当我在我的机器上运行curl命令时,它不起作用 curl -X GET -H "Content-Type: application/json" -H "Date: 1530285602" -H "Authorization: HMAC-SHA256 api_key=XXXXXXXX nonce=12335 signature=XXXXXXXXXXXXX" -d 'false'

添加更多上下文:我正在尝试向无缝.gov API发出一个curl请求。在不同的计算机上,相同的curl命令可以工作。但是,当我在我的机器上运行curl命令时,它不起作用

curl -X GET -H "Content-Type: application/json" -H "Date: 1530285602" -H "Authorization: HMAC-SHA256 api_key=XXXXXXXX nonce=12335 signature=XXXXXXXXXXXXX" -d 'false' https://nycopp.seamlessdocs.com/api/form/CO1708XXXXXXXXXXXXX/elements
我有以下版本的curl:

相同的curl命令在另一台机器上工作,但在矿山上不工作,这可能是版本或操作系统的问题。我在Mac OS High Sierra上运行

 {
    "error": true,
    "error_log": [
        {
            "error_code": "missing_header",
            "error_message": "Request is missing header: `Authorization`",
            "error_description": "{\"Host\":\"XXXX.seamlessdocs.com\",\"Connection\":\"close\",\"X-Real-IP\":\"161.185.7.10\",\"X-Forwarded-For\":\"161.185.7.10\",\"X-Forwarded-Host\":\"nycopp.seamlessdocs.com\",\"X-Forwarded-Port\":\"443\",\"X-Forwarded-Proto\":\"https\",\"X-Original-URI\":\"\\\/api\\\/form\\\/CO1XXXXXXXXXXXXXXX\\\/elements\",\"X-Scheme\":\"https\",\"Content-Length\":\"5\",\"user-agent\":\"curl\\\/7.54.0\",\"accept\":\"*\\\/*\",\"content-type\":\"application\\\/json\",\"date\":\"1530285602\",\"authorization\":\"HMAC-SHA256 api_key=XXXXXXXXXXXXXXX nonce=12335 signature=XXXXXXXXXXXXXX\"}"
        },
        {

错误消息中有一个提示:

==>注意:此公式仅适用于keg,这意味着它没有符号链接到/usr/local,因为macOS已经提供了此软件,同时安装另一个版本可能会导致各种问题

OSX已经安装了curl,并且使用了这个二进制文件。此版本不适用于您的请求。要了解homebrew的安装位置,请执行以下操作:

ll /usr/local/opt/curl
您将得到如下输出:

lrwxr-xr-x  1 maltebuchmann  admin    21B Jun 30 09:50 /usr/local/opt/curl -> ../Cellar/curl/7.60.0
根据该信息,您可以执行上述命令:

/usr/local/Cellar/curl/7.60.0/bin/curl -X GET -H "Content-Type: application/json" -H "Date: 1530285602" -H "Authorization: HMAC-SHA256 api_key=XXXXXXXX nonce=12335 signature=XXXXXXXXXXXXX" -d 'false' https://nycopp.seamlessdocs.com/api/form/CO1708XXXXXXXXXXXXX/elements
您可以按照打印的说明将安装文件夹添加到路径:

如果需要先在路径中运行此软件:echo'export PATH=/usr/local/opt/curl/bin:$PATH'>>~/.bash\u profile

或者,您可以强制将其与自制软件链接:

brew link curl --force

但这样做的风险自负:

请以文本形式输入shell输出,而不是以屏幕截图形式输入。@mbuechmann donecan我可以删除通过brew安装的curl版本,而只保留已随OS X安装的版本吗?OS X的curl版本导致了问题。自制版本修复了它,只是默认情况下无法访问。上面的步骤修复了可访问性。因此,如果我使用上面的步骤发出curl命令,它会起作用,但是如果我想将curl设置为默认版本,通过brew安装该怎么办?我的意思是,我不必每次都运行usr/local/cillar/curl/7.60.0/bin/curl,只需使用curl即可。您可以将path/usr/local/opt/curl/bin添加到$path变量中,请参见上文,或者尝试将其与-force选项链接,请参见上文。建议采用前一种方法。
brew link curl --force