curl命令详解

常用各类软硬件使用技巧、疑难、最新资讯等相关交流
rungod
帖子: 40
注册时间: 2010-06-19 3:51

curl命令详解

帖子 rungod »

一、curl命令介绍
1. curl命令简介
curl是一个功能强大的网络传输工具,可以在命令行中使用。它支持发送和接收数据,并提供了多种协议和功能,如 HTTP、HTTPS、FTP、文件上传、代理等。curl 是一个灵活且广泛应用的工具,常用于测试 API、下载文件、发送请求等场景。

2. curl命令的基本语法
curl 命令的基本语法如下:

代码: 全选

curl [选项] [URL]
其中,URL 是要发送请求或下载的地址。

3. 常用的curl命令选项
下面是一些常用的 curl 命令选项的说明:

# 调试类
-v, --verbose 输出信息
-q, --disable 在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer
-K, --config FILE 指定配置文件
-L, --location 跟踪重定向 (H)

# CLI显示设置
-s, --silent Silent模式。不输出任务内容
-S, --show-error 显示错误. 在选项 -s 中,当 curl 出现错误时将显示
-f, --fail 不显示 连接失败时HTTP错误信息
-i, --include 显示 response的header (H/F)
-I, --head 仅显示 响应文档头
-l, --list-only 只列出FTP目录的名称 (F)
-#, --progress-bar 以进度条 显示传输进度

# 数据传输类
-X, --request [GET|POST|PUT|DELETE|…] 使用指定的 http method 例如 -X POST
-H, --header <header> 设定 request里的header 例如 -H "Content-Type: application/json"
-e, --referer 设定 referer (H)
-d, --data <data> 设定 http body 默认使用 content-type application/x-www-form-urlencoded (H)
--data-raw <data> ASCII 编码 HTTP POST 数据 (H)
--data-binary <data> binary 编码 HTTP POST 数据 (H)
--data-urlencode <data> url 编码 HTTP POST 数据 (H)
-G, --get 使用 HTTP GET 方法发送 -d 数据 (H)
-F, --form <name=string> 模拟 HTTP 表单数据提交 multipart POST (H)
--form-string <name=string> 模拟 HTTP 表单数据提交 (H)
-u, --user <user:password> 使用帐户,密码 例如 admin:password
-b, --cookie <data> cookie 文件 (H)
-j, --junk-session-cookies 读取文件中但忽略会话cookie (H)
-A, --user-agent user-agent设置 (H)

# 传输设置
-C, --continue-at OFFSET 断点续转
-x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理
-U, --proxy-user USER[:PASSWORD] 代理用户名及密码

# 文件操作
-T, --upload-file <file> 上传文件
-a, --append 添加要上传的文件 (F/SFTP)

# 输出设置
-o, --output <file> 将输出写入文件,而非 stdout
-O, --remote-name 将输出写入远程文件
-D, --dump-header <file> 将头信息写入指定的文件
-c, --cookie-jar <file> 操作结束后,要写入 Cookies 的文件位置




二、curl命令示例用法
下面是一些 curl 命令的示例用法:

1. 下载文件
下载指定 URL 的文件,并保存为指定的文件名:

代码: 全选

curl -o myfile.zip http://example.com/file.zip
该命令将从 http://example.com/file.zip 下载文件,并将其保存为 myfile.zip。

将下载的文件保存为原始文件名:

代码: 全选

curl -O http://example.com/file.zip
该命令将从 http://example.com/file.zip 下载文件,并将其保存为原始文件名。

2. 发送 POST 请求
发送 POST 请求,并附带数据:

代码: 全选

curl -d "key1=value1&key2=value2" -X POST http://example.com/api
该命令将发送一个 POST 请求到 http://example.com/api,并附带数据 "key1=value1&key2=value2"。

3. 发送请求时附加头部信息
发送请求时附加自定义头部信息:

代码: 全选

curl -H "Content-Type: application/json" http://example.com/api
该命令将发送一个请求到 http://example.com/api,并在请求头部中附加自定义的头部信息 "Content-Type: application/json"。

4. 请求方法
指定请求的方法,如 GET、POST、PUT、DELETE 等。

代码: 全选

curl -X DELETE http://example.com/resource
该命令将发送一个 DELETE 请求到 http://example.com/resource

5. 指定用户名和密码进行身份验证

代码: 全选

curl -u username:password http://example.com/api
该命令将发送一个请求到 http://example.com/api,并使用提供的用户名和密码进行身份验证。

6. 跟随重定向
跟随重定向并获取最终结果:

代码: 全选

curl -L http://example.com
7. 忽略 SSL 证书验证
忽略 SSL 证书验证:

代码: 全选

curl -k https://example.com
该命令将忽略对 https://example.com 的 SSL 证书验证。

8. 静默模式发送请求
以静默模式发送请求,减少输出信息:

代码: 全选

curl -s http://example.com/api
9. 详细模式发送请求
以详细模式发送请求,增加输出信息。

代码: 全选

curl -v http://example.com/api
回复