linux 工具curl详解

curl 是一个常用的命令行工具,用于在 Linux 系统中进行数据传输。它支持多种协议,如 HTTP、HTTPS、FTP、SFTP、SMTP 等。下面是 curl 的常见用法和选项详解:

基本用法

  1. GET 请求

    curl https://www.example.com

    这个命令会发送一个简单的 GET 请求,获取 https://www.example.com 的内容并输出到标准输出。

  2. POST 请求

    curl -X POST -d "key1=value1&key2=value2" https://www.example.com

    -X POST 指定 HTTP 请求方法为 POST,-d 后面跟的是要提交的数据。注意,数据格式为 key=value

  3. 通过文件发送 POST 请求

    curl -X POST -d @data.txt https://www.example.com

    @data.txt 表示从文件 data.txt 中读取要提交的数据。

  4. 发送 JSON 数据

    curl -X POST -H "Content-Type: application/json" -d '{"key1": "value1", "key2": "value2"}' https://www.example.com

    -H 用来设置请求头,这里设置了 Content-Typeapplication/json

  5. 获取 HTTP 头信息

    curl -I https://www.example.com

    -I 会获取响应的 HTTP 头,而不获取响应体。

常用选项详解

  • -X--request 指定 HTTP 请求方法,如 GET、POST、PUT、DELETE 等。

    curl -X PUT https://www.example.com
  • -d--data 提交数据,常用于 POST 请求。

    curl -X POST -d "key=value" https://www.example.com
  • -H--header 设置 HTTP 请求头。

    curl -H "User-Agent: curl" https://www.example.com
  • -u--user 设置 HTTP 认证用户和密码,格式为 username:password

    curl -u username:password https://www.example.com
  • -L--location 如果服务器响应 3xx 状态码并且提供了 Location 头信息(重定向),-L 会让 curl 自动跟随重定向请求。

    curl -L https://www.example.com
  • -o--output 将响应数据保存到文件。

    curl -o filename.html https://www.example.com
  • -O--remote-name 按照服务器提供的文件名保存文件。

    curl -O https://www.example.com/file.zip
  • -v--verbose 显示详细的请求和响应信息,适用于调试。

    curl -v https://www.example.com
  • -s--silentcurl 处于静默模式,不输出任何进度信息。

    curl -s https://www.example.com
  • -k--insecure 允许 curl 忽略 SSL 证书验证(用于测试)。

    curl -k https://www.example.com
  • --max-time 设置请求的最大超时时间(单位秒)。

    curl --max-time 10 https://www.example.com
  • -F--form 上传文件或表单数据。

    curl -F "file=@filename.txt" https://www.example.com/upload
  • --http2 强制使用 HTTP/2 协议进行请求。

    curl --http2 https://www.example.com
  • -T--upload-file 上传本地文件到服务器。

    curl -T localfile.txt ftp://ftp.example.com/remote_path/

进阶用法

  1. 使用代理

    curl -x http://proxy.example.com:8080 https://www.example.com

    -x 用于指定代理服务器。

  2. 下载多个文件

    curl -O https://www.example.com/file1.zip -O https://www.example.com/file2.zip
  3. 使用 Cookies

    curl -b "name=value" https://www.example.com

    -b 用于发送 cookies,值可以是一个字符串或包含 cookie 的文件。

  4. 保存 Cookies

    curl -c cookies.txt https://www.example.com

    -c 用于将 cookies 保存到文件中。

  5. 检查 URL 是否有效

    curl --head --silent --fail https://www.example.com

    --head 获取头信息,--silent 静默模式,--fail 如果请求失败,返回非零状态码。

综合示例

  1. 通过代理下载文件

    curl -x http://proxy.example.com:8080 -O https://www.example.com/file.zip
  2. 上传文件并保存响应

    curl -F "file=@localfile.zip" -o response.txt https://www.example.com/upload
  3. POST 请求并处理响应

    curl -F "file=@localfile.zip" -o response.txt https://www.example.com/upload

这些是 curl 工具的一些常见用法和选项。curl 还支持许多高级功能,具体可以通过 man curlcurl --help 来查看完整的文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值