curl 是一个常用的命令行工具,用于在 Linux 系统中进行数据传输。它支持多种协议,如 HTTP、HTTPS、FTP、SFTP、SMTP 等。下面是 curl 的常见用法和选项详解:
基本用法
-
GET 请求
curl https://www.example.com这个命令会发送一个简单的 GET 请求,获取
https://www.example.com的内容并输出到标准输出。 -
POST 请求
curl -X POST -d "key1=value1&key2=value2" https://www.example.com-X POST指定 HTTP 请求方法为 POST,-d后面跟的是要提交的数据。注意,数据格式为key=value。 -
通过文件发送 POST 请求
curl -X POST -d @data.txt https://www.example.com@data.txt表示从文件data.txt中读取要提交的数据。 -
发送 JSON 数据
curl -X POST -H "Content-Type: application/json" -d '{"key1": "value1", "key2": "value2"}' https://www.example.com-H用来设置请求头,这里设置了Content-Type为application/json。 -
获取 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 或 --silent 让
curl处于静默模式,不输出任何进度信息。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/
进阶用法
-
使用代理
curl -x http://proxy.example.com:8080 https://www.example.com-x用于指定代理服务器。 -
下载多个文件
curl -O https://www.example.com/file1.zip -O https://www.example.com/file2.zip -
使用 Cookies
curl -b "name=value" https://www.example.com-b用于发送 cookies,值可以是一个字符串或包含 cookie 的文件。 -
保存 Cookies
curl -c cookies.txt https://www.example.com-c用于将 cookies 保存到文件中。 -
检查 URL 是否有效
curl --head --silent --fail https://www.example.com--head获取头信息,--silent静默模式,--fail如果请求失败,返回非零状态码。
综合示例
-
通过代理下载文件
curl -x http://proxy.example.com:8080 -O https://www.example.com/file.zip -
上传文件并保存响应
curl -F "file=@localfile.zip" -o response.txt https://www.example.com/upload -
POST 请求并处理响应
curl -F "file=@localfile.zip" -o response.txt https://www.example.com/upload
这些是 curl 工具的一些常见用法和选项。curl 还支持许多高级功能,具体可以通过 man curl 或 curl --help 来查看完整的文档。

7645

被折叠的 条评论
为什么被折叠?



