我有一个带有以下curl命令的bash脚本:
curl -v -X GET https://example.com -H ~/Desktop/headers.txt -o ~/Desktop/file.txt
当我运行 bash 脚本时,我收到了 unothorized 401。显然我没有正确读取头文件。我的头文件看起来像“授权:承载 40bsafsdgds34234....”。我的curl版本是7.26
答案1
-H
选项默认从参数(文本)而不是文件中读取标头信息。
因为curl 7.55
您可以使用-H @file
从文件中读取。
对于旧版本,您需要一个小脚本,如下所示:
curl $(xargs -a headers.txt -I{} printf '-H "%s" ' "{}") URL
一些链接:
选择:
创建配置文件,包括-H "..."
:
-H "Authorization: bearer token"
-H "Another header"
并使用-K/--config <config file>
选项。
或通过以下方式自动使用您的原始文件sed
:
curl -K <(sed -r 's/^(.*)$/-H "\1"/' headers.txt) URL
答案2
经过大量的尝试和错误后,我发现这对我有用
curl -v -X GET https://example.com -H "$(cat ~/Desktop/headers.txt)" -o ~/Desktop/file.txt