流年似水博客开通了,本站主要是写关于Web和大数据方面内容,正在更新中,欢迎大家光临!
  1. 文章:97 篇
  2. 总浏览:34,014 次
  3. 评论:22条
  4. 最后更新:2020-06-08
  5. 分类目录:39 个

curl命令介绍以及案例

Command l, xy 268℃ 0评论

curl命令介绍以及案例

零、 curl命令介绍

    curl是用于在服务器之间传输数据的命令行工具,可以下载或者上传文件 、获取服务器内容、调用服务器接口等等。并且curl工具支持多种协议,包括:DICT, FILE, FTP, FTPS, GOPHER, HTTPHTTPS,  IMAP,  IMAPS,  LDAP,  LDAPS,  POP3, POP3S,  RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP.

    用法:

curl [option] URL

一、下载并保存到文件

在控制台输出指定url的内容

curl  https://www.timewentby.com

将url中的内容保存到文件timewentby.com 文件中

curl http://www.timewentby.com > timewentby.com
image.png

同时我也可以使用 -o 选项来保存指定的文件

效果同上

curl -o timewenby.html https://www.timewentby.com

image.png

我们也可以使用 -O (大写的O),来保存文件不过保存的文件名为url最后的文件名或者会报错。

本案例中下载的文件名为882.html

curl -O https://timewentby.com/linux/882.html

image.png

二、静默输出

如果你不想curl显示处理的详情或者错误信息,请使用 -s 选项吧。

例如:我们使用获取一个不存在的域名

curl   iloveyou520.top

image.png

使用 -s 以后

curl -s iloveyou520.top.com

image.png

三、 同时下载多个文件

只显示错误信息不显示其他任何详情(这是curl默认的放肆),可以使用  -s -S 

curl -s -S https://www.timewentby.com

同时下载两个文件 使用多个 -O (大写O)

curl  -O  https://curl.haxx.se/docs/manpage.html  -O https://curl.haxx.se/docs/manual.html
image.png

如果使用 -o(小写o),请在-o后面跟要保存的文件名。

四、处理URL转发

当我们访问的域名存在302转发的使用默认是访问不到的,可以使用-L 选择加入转发

curl -L timewentby.com
image.png

五、显示调试信息

$ curl -v timewetnby.com

$ curl --trace info timewentby.com

六、 显示请求头信息

a . 只显示请求头信息

curl -I https://timewentby.com
image.png

b. 既显示请求头信息同时也显示内容

curl -i https://timewentby.com
image.png

七、 发送POST请求

    -H  : 指定发送header参数,这里是指定Content-Type:application/json

    -X  :执行请求方法,可以是GET、POST、PUT、DELETE等,默认为GET

    -A 或者 --user-agent : 指定 user-agent,例如:-A "Mozilla/5.0 (Android; Mobile; rv:35.0) Gecko/35.0 Firefox/35.0"

    --data 或者 -d : 指定发动给服务器的数据,如果使用--data或者-d,则默认发送方法为POST。 默认的 content-type application/x-www-form-urlen‐coded。

可以使用多个-d,例如 -d "name=zxy" -d "age=18",但是最后发送请求时会进行合并成类似 -d "name=zxy&age=18"。

     -d @foobar : 代表请求参数从foobar文件中读取

     -d - : 代表请求参数从标准输入读取   

     

curl -H "Content-Type:application/json" -X POST --data '{"number":1,"phone":"136xxxxxx46","taskid":140}' https://timewentby.com/example/phone

八、 保存头部信息

    -D 或者 --dump-header : 保存协议的头部信息到指定的文件

打印https://timewentby.com内容,并将http响应头信息保存的当前目录的head文件中

curl -D head https://timewentby.com > timewentby.html
image.png

九、 保存cookie和读取cookie

    -c 或者 --cookie-jar : 将cookie保存到指定的文件中,如果不存在cookie不会写入文件(文件不会保存)。

    -b 或者 --cookie : 读取cookie,可以从-c 参数保存的文件中读取也可以从-D 参数保存的文件中读取。 也可以后跟 -b "name1=value1;name2=value2"格式的数据

保存cookie

curl -c "cookie" https://www.timewentby.com

读取cookie

curl -b "cookie" https://www.timewentby.com

或者

curl -b "cookie1=value1" http://www.timewentby.com

十、 设置代理下载文件

    -x 或者 --proxy : 设置下载代理。例如: -x "timewentby.com:3059" . 默认端口为1080.默认协议为http

curl -x "timewentby.com:3059" https://timewentby.coom

十一、 断点下载

    --limit-rate : 限制下载最大速度/秒,例如:--limit-rate 10m 最大每秒下载10M。 可用的单位 b或者B,k 或者 K , m或者M,g或者G

    -C : 断点续传

curl -C download_URL

或者

curl -C -  download_URL

十二、 用户名密码验证下载文件

curl -u username:password download_URL

十三、 FTP服务器下载/上传/删除文件

    a. FTP服务器下载文件

curl -u ftpuser:password -O ftp://ftp_pub/public_html/index.html

或者

curl -u ftpuser:password -o index.html ftp://ftp_pub/public_html/index.html

    b. FTP服务器上传文件

# 上传单个
curl -u ftpuser:password -T linuxtechi.txt ftp://ftp_pub/public_html/

# 上传多个文件
curl -u ftpuser:password -T "(linuxtechi1.txt linuxtechi2.txt)"  ftp://ftp_pub/public_html/

    c. FTP服务器删除文件

curl ftp://ftp_pub/public_html -X 'DELE linuxtechi.zip' --user ftpuser:password

十四、 关于SSL证书验证、警告问题

    a. 验证SSL证书

 curl --cacert new-ca.crt download_URL

    b. 忽略SSL证书警告

curl -k download_url

转载请注明:流年似水 » curl命令介绍以及案例

喜欢 (0)or分享 (0)

Warning: copy(https://cn.gravatar.com/avatar/?s=54&d=%2Fwp-content%2Fthemes%2Fyusi1.0%2Fimg%2Fdefault.png&r=g): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 239

Warning: copy(/wp-content/themes/yusi1.0/img/default.png): failed to open stream: No such file or directory in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 243
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址