当前位置: 首页 > article >正文

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 来查看完整的文档。


http://www.kler.cn/a/396318.html

相关文章:

  • windows@多系统引导名字修改@默认引导系统修改@bcdedit配置
  • 深入理解 source 和 sh、bash 的区别
  • 企业生产环境-麒麟V10(ARM架构)操作系统部署kafka高可用集群
  • 使用 Python 和 OpenCV 实现摄像头人脸检测并截图
  • 三:网络为什么要分层:OSI模型与TCP/IP模型
  • 51c嵌入式~单片机合集2
  • 效益登记册效益管理计划
  • 用WordPress需要学习哪些编程知识
  • CentOS 9 配置网卡
  • Dial-insight:利用高质量特定领域数据微调大型语言模型防止灾难性遗忘
  • NPOI 实现Excel模板导出
  • 【miniMax开放平台-注册安全分析报告-无验证方式导致安全隐患】
  • 【Unity Bug 随记】unity version control 报 xx is not in a workspace.
  • 时序数据库TDEngine
  • Day 65 || SPFA、判断负权回路、bellman_ford之单源有限最短路
  • 【leetcode】N皇后 回溯法c++
  • 一文说清libc、glibc、glib的发展和关系
  • 《JavaScript 前端开发》
  • python学习_2.去除字符strip方法
  • CC3学习记录
  • H5页面多个视频如何只同时播放一个?
  • 【idea】更换快捷键
  • 51c大模型~合集42
  • ComfyUI-image2video模型部署教程
  • 第三代指标平台和其他BI工具/指标管理平台有何区别
  • 【Linux学习】【Ubuntu入门】1-4 ubuntu终端操作与shell命令2