ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### 安装 ``` yum install -y curl ``` curl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作。 ~~~ -f|--fail 失败时不提示错误 --connect-timeout 连接超时时间 -I|--head 只打印头部信息 ~~~ ### 用curl进行认证 使用curl选项 -u 可以完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码: ~~~ curl -u user:pwd http://man.linuxde.net curl -u user http://man.linuxde.net ~~~ ### POST方法和GET方法 ~~~ -d|--data post方法 -G|--get get方法 ~~~ ### 文件下载 curl是将下载文件输出到stdout,将进度信息输出到stderr,不显示进度信息使用-s|--silent选项。 a)选项-O|--remote-name将下载的数据写入到文件,保留原始的命名 ~~~ curl http://man.linuxde.net/text.iso -O ~~~ b)选项-o|--output将下载数据写入到指定名称的文件中 ~~~ curl http://man.linuxde.net/test.iso -o filename.iso ~~~ 文件上传 ~~~ -T|--upload-file ~~~ ### 断点续传 curl能够从特定的文件偏移处继续下载,它可以通过指定一个偏移量来下载部分文件 ~~~ curl URL -C 偏移量 ~~~ 偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C: ~~~ curl -C -URL ~~~ ### 使用curl设置参照页字符串 使用-e|--referer选项指定参照页字符串: ~~~ curl --referer http://www.google.com http://man.linuxde.net ~~~ ### 用curl设置cookies 使用--cookie "COKKIES"选项来指定cookie,多个cookie使用分号分隔: ~~~ curl http://man.linuxde.net --cookie "user=root;pass=123456" ~~~ 将cookie另存为一个文件,使用--cookie-jar选项: ~~~ curl URL --cookie-jar cookie_file ~~~ ### 用curl设置用户代理字符串 使用-A|--user-agent选项: ~~~ curl URL --user-agent "Mozilla/5.0" ~~~ 其他HTTP头部信息也可以使用curl来发送,使用`-H|--header`"头部信息" 传递多个头部信息, ~~~ curl -H "Host:man.linuxde.net" -H "accept-language:zh-cn" URL ~~~ ### curl的带宽控制和下载配额 使用--limit-rate限制curl的下载速度: ~~~ curl URL --limit-rate 50k ~~~ 命令中用k(千字节)和m(兆字节)指定下载速度限制。 使用--max-filesize指定可下载的最大文件大小: ~~~ curl URL --max-filesize bytes ~~~ 如果文件大小超出限制,命令则返回一个非0退出码,如果命令正常则返回0。 ### 指定代理 使用选项-x|--proxy ~~~ curl -x127.0.0.1:80 www.sunnysky.com/test_access_control ~~~ ### 超时 使用curl时,有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间。 连接超时时间用 `--connect-timeout` 参数来指定,数据传输的最大允许时间用 `-m --max-time` 参数来指定。 ~~~ curl --connect-timeout 10 -m 20 "http://XXXXXXX" ~~~ 连接超时的话,出错提示形如: curl: (28) connect() timed out! 数据传输的最大允许时间超时的话,出错提示形如: curl: (28) Operation timed out after 2000 milliseconds with 0 bytes received