cURL:开源项目,主要是命令行工具 cURL 和 libcurl,cURL 可以处理任何网络传输协议,但是不涉及任何具体的数据处理。cURL支持丰富的通信协议,如 DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,MQTT,POP3,POP3S,RTMP, RTMPS,RTSP,SCP,SFTP,SMB,SMBS,SMTP,SMTPS,TELNET 以及 TFTP。

cURL 安装:

  • Ubuntu/Debian:sudo apt install curl
  • CentOS/Fedora:sudo yum install curl

1、直接请求:curl http://wttr.in/
2、文件下载:

  1. # -o:自定义保存文件名:cad.exe
  2. curl -o cad.exe http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe
  3. # -O:使用url中的文件名:CADReaderPc5.13.2.72.exe
  4. curl -O http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe
  5. # -s:用来禁用默认显示的进度表
  6. curl -O http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe -s
  7. # --progress-bar:让进度表显示为进度条
  8. curl -O http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe --progress-bar
  9. # -C - :断点续传
  10. C:\>curl -O http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe --progress-bar
  11. ^C 0.4%
  12. C:\>curl -C - -O http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe --progress-bar
  13. ######## 11.7%^C
  14. C:\>curl -C - -O http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe --progress-bar
  15. #########
  16. # --limit-rate:限速下载
  17. curl -O http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe --progress-bar --limit-rate 100k
  18. # -u username:password 从FTP服务器下载文件
  19. curl -u user:password -O ftp://ftp_server/path/to/file/

3、Response Headers:

  • -i:显示Response Headers信息
  • -I:只显示Response Headers信息

    1. C:\>curl -I http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe
    2. HTTP/1.1 200 OK
    3. Server: openresty/1.9.15.1
    4. Date: Sat, 05 Dec 2020 15:11:40 GMT
    5. Content-Type: application/octet-stream
    6. Content-Length: 24696784
    7. Connection: keep-alive
    8. Last-Modified: Fri, 04 Dec 2020 10:20:36 GMT
    9. ETag: "5fca0d74-178d7d0"
    10. Z-download: download-sdta19:891
    11. Accept-Ranges: bytes

    4、请求方式(GET、POST…):-X 参数

    1. curl -X POST http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe
    2. curl -X GET http://down10.zol.com.cn/tuxiangliulan/CADReaderPc5.13.2.72.exe

    5、请求参数:

  • GET方式:直接url拼接参数

  • POST方式:使用 —data 设置参数
  • 请求时也可以自定义 header 参数,使用 —header 添加 ```bash

    GET方式

    curl -X GET http://wttr.in?name=未读代码

POST参数

curl -X POST —data “name=未读代码” http://wttr.in

自定义header参数

curl —header “Content-Type:application/json” http://wttr.in

  1. 6、文件上传:
  2. - -F :会自动加上请求头 Content-Type:multipart/form-data
  3. - -D :会自动加上请求头 Content-Type:application/x-www-form-urlencoded
  4. ```bash
  5. # 上传一个 hello.jpg 图片
  6. curl -F profile=@hello.jpg https://example.com/upload
  7. # 提交一个具有 name 和 age 参数的 form 表单
  8. curl -F name=user -F age=18 https://example.com/upload
  9. # 参数的内容支持从文件中读取
  10. curl -F "content=<达西的身世.txt" https://example.com/upload
  11. # 上传时同时指定内容类型
  12. curl -F "content=<达西的身世.txt;type=text/html" https://example.com/upload
  13. # 上传文件的和其他参数一起
  14. curl -F 'file=@"localfile";filename="nameinpost"' example.com/upload

7、网址通配:

  • {parm1 , parm2 , …}:逗号分割来标识使用 url 中的某一段
  • []:范围参数 ```bash

    请求 www.baidu.com 和 pan.baidu.com 和 fanyi.baidu.com

    $ curl http://{www,pan,fanyi}.baidu.com

虚构网址1-10开头的baidu.com,然后请求

$ curl http://[1-10].baidu.com

虚构网址a-z开头的baidu.com,然后请求

$ curl http://[a-z].baidu.com

  1. 8、使用 cookie:请求时使用 -c 参数存储响应的 cookie,使用 -b 可以在请求时带上指定 cookie
  2. ```bash
  3. $ curl -c wdbyte_cookies http://www.wdbyte.com
  4. $ curl -b wdbyte_cookes http://www.wdbyte.com