使用-d @filename 是在POST 调用中包含文件的方法,但我怀疑它不适用于-u。
最好的选择是使用 .curlrc,一个独立的 curl 配置文件,或者通过标准输入传递配置文件。
编辑:短版:在 cURL 请求中添加 -K <config file path> 参数并将 -u "user:password" 移动到此文件的第一行。
来自 curl http://curl.haxx.se/docs/manpage.html 的手册页
-K, --config <config file>
指定从哪个配置文件读取 curl 参数。配置文件是一个文本文件,可以在其中写入命令行参数,然后将其用作实际命令行。
选项及其参数必须在同一配置文件行中指定,以空格、冒号或等号分隔。可以选择在配置文件中给出长选项名称,而不需要初始双破折号,如果是这样,冒号或等号字符可以用作分隔符。如果选项指定有一个或两个破折号,则选项与其参数之间不能有冒号或等号。
如果参数要包含空格,则参数必须用引号引起来。在双引号内,可以使用以下转义序列:\、\"、\t、\n、\r 和 \v。忽略任何其他字母前面的反斜杠。如果配置行的第一列是“#”字符,该行的其余部分将被视为注释。在配置文件中每物理行只写一个选项。
将文件名指定为 -K,--config 为 '-' 以使 curl 从标准输入读取文件。
请注意,为了能够在配置文件中指定 URL,您需要使用 --url 选项指定它,而不是简单地将 URL 写在单独的行上。所以,它可能看起来像这样:
url = "http://curl.haxx.se/docs/"
当 curl 被调用时,它总是(除非使用 -q)检查一个默认的配置文件,如果找到就使用它。默认配置文件按此顺序在以下位置进行检查:
1) curl 尝试查找“主目录”:它首先检查 CURL_HOME,然后检查 HOME 环境变量。如果做不到这一点,它会在类 UNIX 系统上使用 getpwuid() (它返回给定系统中当前用户的主目录)。在 Windows 上,它会检查 APPDATA 变量,或者作为最后的手段检查 '%USERPROFILE%\Application Data'。
2) 在 Windows 上,如果主目录中没有 _curlrc 文件,它会在放置 curl 可执行文件的同一目录中查找文件。在类 UNIX 系统上,它只会尝试从确定的主目录加载 .curlrc。
# --- Example file ---
#this is a comment
url = "curl.haxx.se"
output = "curlhere.html"
user-agent = "superagent/1.0"
# and fetch another URL too
url = "curl.haxx.se/docs/manpage.html"
-O
referer = "http://nowhereatall.com/"
#- -- End of example file ---
此选项可以多次使用以加载多个配置文件。