Curl :从文件中读取标头并在 cURL 命令中使用它们

Curl :从文件中读取标头并在 cURL 命令中使用它们

我有一个带有以下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 

相关内容