Curl的用法指南

curl 是一个开源的用于数据传输的命令行工具与库,它使用 URL 语法格式,支持众多传输协议,包括:HTTP、HTTPS、FTP、FTPS、GOPHER、TFTP、SCP、SFTP、SMB、TELNET、DICT、LDAP、LDAPS、FILE、IMAP、SMTP、POP3、RTSP和RTMP。curl 库提供了很多强大的功能,你可以利用它来进行 HTTP/HTTPS 请求、上传/下载文件等,且支持 Cookie、认证、代理、限速等。

curl使用实例

  • url访问:直接加上要访问的网址。curl 默认发出 GET 请求,服务器返回的内容会在命令行输出。

    curl https://www.example.com
  • **重定向跟踪:**页面使用了301|303 等重定向,可以添加 -L 参数来跟踪 URL 重定向。

    curl -L https://www.example.com
  • **页面保存:**将页面源码保存到本地。 -o/--output 必须输入保存文件名,-O/--remote-name 保留远程文件的文件名。

    curl https://www.example.com >> example.html
    curl -o example.html https://www.example.com
    curl -O https://www.example.com/index.html
  • 查看头信息:使用 -i参数,页面响应头会和页面源码(响应体)一块返回;使用-I--head参数,只返回向应头。

    curl -i https://www.example.com
    curl -I https://www.example.com
    curl --head https://www.example.com
  • HTTP请求方法:curl 支持所有 HTTP 请求方法,默认使用 get 请求,可以通过 -X 参数指定。

    # 获取ip地址
    curl http://ip-api.com/json
    curl -X DELETE https://www.example.com/api/delete/xxx
    curl -X POST --data 'keyword=example' https://www.example.com/api/[delete_api]
  • HTTPS支持:curl 可以直接访问 HTTPS 协议。如果使用的本地 ssl证书 认证的 HTTPS,可以通过-E--cert参数指定本地证书。

    curl -E my_cert.pem https://www.example.com
  • 添加请求头:通过 -H--header 参数来指定请求头。多次使用 -H--header 参数可指定多个请求头。

    $ curl -H 'Content-Type:application/json' -H 'Authorization: ndhielsi.ighhgeuwj' https://www.example.com
  • Cookie支持:通过 --cookie 参数指定发送请求时的 Cookie 值,也可以通过 -b [文件名] 来指定一个存储了 Cookie 值的本地文件。

    curl --cookie 'token=1234' https://www.example.com
    curl -b my_cookies.txt https://www.example.com

    Cookie 值可能会被服务器所返回的值所修改,并应用于下次 HTTP 请求。这时,可以能过 -c 参数指定存储服务器返回 Cookie 值的存储文件。

    curl -b my_cookies.txt -c newcookies.txt https://www.example.com
  • 文件上传:使用 -T--upload-file 上传文件。

    curl -T ./index.html https://www.example.com/api/[upload_api]
  • 伪造来源地址:修改请求 Header 中的 referer 信息。

    curl -e http://localhost https://www.example.com
  • 请求代理:指定 HTTP 请求的代理。

    curl -x 123.45.67.89:1080 https://www.example.com
  • 循环下载

    curl -O http://mydomain.net/~zzh/screen[1-10].JPG
    curl -O http://mydomain.net/~{zzh,nick}/[001-201].JPG
    curl -o #2_#1.jpg http://mydomain.net/~{zzh,nick}/[001-201].JPG
  • 分块下载

    curl -r  0 -10240  -o "zhao.part1"  https://www.example.com/media/zhao1.mp3 &\
    curl -r 10241 -20480  -o "zhao.part1"  https://www.example.com/media/zhao1.mp3 &\
    curl -r 20481 -40960  -o "zhao.part1"  https://www.example.com/media/zhao1.mp3 &\
    curl -r 40961 - -o  "zhao.part1"  https://www.example.com/media/zhao1.mp3
  • 限制网速:限制 HTTP 请求和回应的带宽,模拟慢网速的环境。

    curl --limit-rate 200k https://www.example.com

curl语法及选项

语法

参数选项

最后更新于

这有帮助吗?