问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

curl命令常用详解

创作时间:
作者:
@小白创作中心

curl命令常用详解

引用
CSDN
1.
https://blog.csdn.net/weixin_46357988/article/details/139718156

Curl是一个强大的命令行工具,用于与服务器进行数据传输。它支持多种协议,包括HTTP、FTP、SMTP等,并提供了丰富的参数选项,可以满足各种网络数据传输需求。本文将详细介绍curl的基本用法、常用参数及其应用场景。

1、curl 介绍

Curl是一个命令行工具和库(libcurl),用于与服务器进行数据传输。它支持各种协议,包括HTTP、FTP、SMTP、POP3等,并支持常见的身份验证、代理、cookie等功能。curl通常用于测试API、爬取网页、上传和下载文件等任务。curl 由 libcurl 提供支持,可实现所有与传输相关的功能。

2、curl 语法

语法:curl [options...] <url>      #options是表示参数    url是网页的地址
Options: (H) means HTTP/HTTPS only, (F) means FTP only。
某些选项只适用于 HTTP/HTTPS 协议,而另一些选项只适用于 FTP 协议。
当选项标注为 (H) 时,表示该选项仅在使用 HTTP/HTTPS 协议时可用。这意味着你只能在发送 HTTP 或 HTTPS 请求时使用这些选项。
当选项标注为 (F) 时,表示该选项仅在使用 FTP 协议时可用。这意味着你只能在进行 FTP 操作时使用这些选项。  

3、curl 常用参数

  • -h, --help:显示帮助文本。使用这个选项可以查看curl的帮助信息。
  • -V, --version:显示版本号并退出。通过使用这个选项,你可以查看curl的版本号信息。
  • -X, --request method:用于指定要使用的请求方法。常见的请求方法包括 GET、POST、PUT、DELETE 等。通过指定请求方法,你可以告诉curl在发送请求时使用特定的 HTTP 方法。
  • -H, --header <HEADER>:添加自定义的请求头。通过该参数,你可以添加一个自定义的请求头传递给服务器。
    请求头信息
  • -d, --data <DATA>:发送 POST 请求时附带的数据。用于指定要作为请求体发送的数据,通过指定 -d 选项,你可以将数据附加到请求中。发送的数据
  • -F, --form <KEY=VALUE>:发送 multipart/form-data 请求时附带的表单数据。使用表单格式发送数据。格式为 KEY=VALUE,类似URL编码的表单数据。
  • -o, --output <FILE>:将服务器响应内容保存到指定的文件中。文件名
  • -O, --remote-name:将服务器响应保存到与远程文件名相同的文件中。
  • -T, --upload-file:选项用于指定要上传的文件。你可以使用该选项将本地文件上传到服务器。
  • -u, --user USER:PASSWORD:指定用户名和密码,用于 HTTP基本身份验证。USER:PASSWORD,用户名:密码
  • -L, --location:跟随服务器重定向,将服务器响应保存到新位置。
  • -c, --cookie <STRING/FILE>:使用指定的字符串或文件中的cookie来发送请求。你可以提供一个包含 cookie 的字符串,或者使用一个文件来读取 cookie。<STRING/FILE>字符串或者文件名
  • -m, --max-time:用于设置传输的最大时间限制。
  • -C, --continue-at <offset>:用于断点续转下载。如果下载被中断,你可以使用该选项指定要从哪个字节偏移量开始继续下载。 就是偏移量
  • -b, --cookie-jar <FILE>:将服务器返回的cookie保存到指定的文件中。文件名
  • -k, --insecure:允许连接到SSL/TLS加密的站点时忽略证书验证。这在测试环境或不信任的环境中可能会有用,但在生产环境中不建议使用。
  • -s, --silent:在执行请求时不打印进度或错误信息,使curl静默工作。这对于脚本中的静默操作很有用。
  • -v, --verbose:显示详细的请求和响应信息,包括请求头、响应头和其他调试信息。
  • -I, --head:仅获取响应头信息。
  • -x, --proxy PROTOCOL://HOST:PORT:用于指定代理服务器的地址和端口。PROTOCOL://HOST:PORT 协议://主机名:端口
  • -A, --user-agent <USERAGENT>:设置用户代理字符串,模拟特定浏览器或客户端发送请求。 指定的客户端
  • --compressed:请求服务器发送经过压缩的响应。这可以节省带宽和加快传输速度。curl默认会自动处理压缩的响应,但使用该选项可以强制请求压缩的响应。请求压缩后的响应。
  • --limit-rate <RATE>:限制请求的传输速率。你可以使用该选项设置一个速率限制,以控制请求的带宽。请求的速率
  • --retry <NUM>:指定请求失败时的重试次数。你可以使用该选项指定重试的次数。 重试的次数

4、curl 常用案例

  1. 通过curl命令可以获取指定URL的网页内容,并将其输出到终端。
curl https://www.djl.cn  
  1. 指定-o参数可以用于从服务器下载文件并把响应的内容保存到指定文件中。这里是把响应的内容保存在a.txt文件中
curl -o a.txt https://download.djl.cn/a.sh  
  1. 指定-O参数可以用于从服务器下载文件并保持与远程文件名相同的文件中。
curl -O https://download.djl.cn/a.sh  
  1. 指定-T参数可以把本地的文件上传到服务器上面。这里把a.txt文件上传到服务器中
curl -T a.txt https://www.dengjilin.top/upload  
  1. 可以用于发送POST请求,并传递数据给服务器。-X指定请求的方法,-d指定请求的数据
curl -X POST -d "name=djl&passwd=abcd" https://www.dengjilin.top/api  
  1. 指定-H参数可以用于设置HTTP请求头。
curl -H "Content-Type: application/json" https://www.dengjilin.top/api  
  1. 指定-x参数可以通过代理服务器进行请求。这将通过名为http://proxy.dengjilin.top:8080的HTTP代理服务器(端口号为8080)访问https://www.dengjilin.top。
curl -x http://proxy.dengjilin.top:8080 https://www.dengjilin.top  
  1. 指定-m参数可以设置请求的超时时间,单位为秒。这将向https://www.dengjilin.top发送HTTP GET请求,并设置超时时间为10秒。如果在10秒内没有收到服务器的响应,curl命令将终止请求。
curl -m 10 https://www.dengjilin.top  
  1. curl命令默认是不会自动跟随HTTP重定向。可以通过-L参数启用重定向。
curl -L https://www.djl.cn  
  1. 指定-v参数输出详细的调试信息,包括请求和响应头信息。
curl -v https://www.djl.cn  

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号