curl 命令

-X/--request <command> 参数

  指定什么命令,如 GETPOST

  • 例:
curl -X GET http://localhost:8080/search?data=123  # -X GET是可选的
curl -X POST -d "data=123&key=456" http://localhost:8080/search

# JSON数据以 请求体(body) 方请求
curl -H "Content-Type:application/json" -X POST --data '{"message": "sunshine"}' http://localhost:8000/

-d/--data <data> 参数

  HTTP POST方式传送数据。

  -d 选项是以使用 POST 方式向 Server 发送数据,因此在使用 -d 的时候,可以省略 -X POST请注意,使用 -d 时,将使用 Content-type:application/x-www-form-urlencoded 方式发送数据。如果想使用 JSON 形式 post 数据,可以使用 -H 指定头部类型。如:

curl -H "Content-Type:application/json" -d '{"data":"123","key":"456"}' http://localhost:8080/search

-H/--header <line> 参数

   自定义头信息传递给服务器。

  • 例:
curl -H "Host:192.168.0.1" -H "accept-language:zh-cn" URL

  操作结束后把 cookie 写入到这个文件中。

  • 例:
curl -d "name=zhangsan&password=123" http://localhost:8080/login -c ./cookie

  cookie 字符串或文件读取位置

  • 例:
# cookie 文件
curl http://localhost:8080/login -b ./cookie
# 直接指定 cookie
curl --cookie "name=zhangsan" http://localhost:8080/login

-F/--form <name=content>/--form-string <name=string> 参数

  模拟 http 表单提交数据,curl 可以通过-F命令来以Content-Type:multipart/form-data的形式向 server post 数据,该命令允许提交二进制文件等。可以使用@前缀来制定提交的内容为一个文件,也可以使用<符号来提交文件中的内容。

  • 例:
# 向服务器上传一个图片,图片的表单 name 为 profile,内容为 protrait.jpg 的二进制
curl -F prefile=@portrait.jpg https://example.com/upload

-O/--remote-name

  把输出写到该文件中,保留远程文件的文件名。

  • 例:
curl http://man.linuxde.net/text.iso --silent -O

-o/--output

  把输出写到指定文件中。

  • 例:
# 选项 -o 将下载数据写入到指定名称的文件中,并使用 --progress 显示进度条:
curl http://man.linuxde.net/test.iso -o filename.iso --progress
######################################### 100.0%

-s/--silent 命令

  静默模式,不输出任何东西。

curl http://man.linuxde.net/text.iso --silent -O

-i/--include

  输出时包括 response 头信息

  • 例:
curl -i https://www.baidu.com

-I/--head

  只显示请求头信息

  • 例:
curl -I https://www.baidu.com
<think>我们正在讨论curl命令的使用方法和示例。根据引用内容,curl是一个命令行工具,用于向服务器发送请求并获取数据,支持多种协议如HTTP、HTTPS、FTP等。以下是一些常用的curl命令及其用法示例: 1. **基本用法**:获取网页内容 ```bash curl https://example.com ``` 这将发送GET请求到指定URL并在终端显示返回的内容。 2. **保存文件**:使用`-o`选项将输出保存到文件 ```bash curl -o filename.html https://example.com ``` 3. **静默模式**:使用`--silent`选项不显示进度信息 ```bash curl --silent https://example.com ``` 4. **跟随重定向**:使用`-L`选项自动跟随重定向 ```bash curl -L https://example.com ``` 5. **发送POST请求**:使用`-d`选项发送POST数据 ```bash curl -d "name=value" https://example.com/form ``` 如果需要发送JSON数据,可以设置Content-Type头: ```bash curl -H "Content-Type: application/json" -d '{"key":"value"}' https://example.com/api ``` 6. **使用Cookie**:使用`-b`选项从文件中读取Cookie ```bash curl -b cookies.txt https://example.com ``` 也可以直接指定Cookie字符串: ```bash curl -b "sessionid=1234" https://example.com ``` 7. **设置请求头**:使用`-H`选项添加自定义请求头 ```bash curl -H "User-Agent: MyBrowser" -H "Accept: application/json" https://example.com ``` 8. **限制速率**:使用`--limit-rate`限制下载速率 ```bash curl --limit-rate 200K -O https://example.com/largefile.zip ``` 9. **忽略SSL证书验证**:使用`--insecure`选项(不推荐在安全环境下使用) ```bash curl --insecure https://example.com ``` 10. **上传文件**:使用`-T`选项上传文件 ```bash curl -T localfile.txt ftp://example.com/upload/ ``` 11. **调试信息**:使用`-v`选项显示详细请求信息(调试用) ```bash curl -v https://example.com ``` 12. **使用代理**:通过`-x`选项设置代理 ```bash curl -x http://proxy-server:port https://example.com ``` 引用[1]和[2]提供了curl的基本介绍和示例,引用[3]详细说明了如何使用cookie。这些引用内容可以作为curl命令使用的参考。 §§相关问题§§ 1. 如何用curl发送PUT请求? 2. 如何用curl处理HTTP认证(如Basic Auth)? 3. 如何用curl模拟浏览器行为(如设置User-Agent)? 4. 如何用curl测试API的响应时间? 5. 如何用curl下载文件并显示进度条?</think>### Curl命令使用指南 Curl(Client URL)是一个强大的命令行工具,用于传输数据,支持多种协议(HTTP/HTTPS/FTP/FTPS/SFTP等)。以下是核心用法和示例: --- #### 一、基础操作 1. **获取网页内容** ```bash curl https://example.com ``` - 输出结果到终端(默认行为) 2. **保存文件** ```bash curl -o output.html https://example.com ``` - `-o`:指定输出文件名(支持任意扩展名) 3. **静默模式** ```bash curl --silent https://example.com ``` - 隐藏进度条和错误信息[^2] --- #### 二、HTTP请求控制 1. **发送GET请求** ```bash curl "https://api.example.com/data?id=123" ``` 2. **发送POST请求** ```bash curl -X POST -d "name=John&age=30" https://api.example.com/users ``` - `-X`:指定请求方法 - `-d`:发送表单数据(自动设置`Content-Type: application/x-www-form-urlencoded`) 3. **发送JSON数据** ```bash curl -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com ``` - `-H`:添加请求头 4. **上传文件** ```bash curl -F "file=@local_path.txt" https://upload.example.com ``` --- #### 三、会话与认证 1. **使用Cookie** ```bash curl -b cookies.txt https://example.com # 读取cookie文件 curl -c new_cookies.txt https://example.com # 保存服务器返回的cookie ``` - `-b`:发送Cookie(`--cookie`缩写)[^3] - `-c`:保存Cookie到文件(`--cookie-jar`缩写) 2. **基础认证** ```bash curl -u username:password https://auth.example.com ``` --- #### 四、高级功能 1. **跟随重定向** ```bash curl -L https://example.com/redirect ``` - `-L`:自动处理301/302重定向 2. **限速下载** ```bash curl --limit-rate 200K -O https://example.com/largefile.zip ``` - 限制速度为200KB/s 3. **断点续传** ```bash curl -C - -O https://example.com/bigfile.iso ``` 4. **跳过SSL验证**(测试用) ```bash curl --insecure https://self-signed-cert.example.com ``` --- #### 五、调试与诊断 1. **显示请求详情** ```bash curl -v https://example.com # 查看请求头/响应头 curl -i https://example.com # 仅显示响应头+内容 ``` 2. **测试响应时间** ```bash curl -w "响应时间: %{time_total}s\n" -o /dev/null https://example.com ``` --- ### 典型场景示例 | 场景 | 命令示例 | |--------------------------|--------------------------------------------------------------------------| | 下载文件并重命名 | `curl -o image.jpg https://example.com/photo.png` | | 提交JSON到API | `curl -H "Content-Type: application/json" -d '{"task":"update"}' API_URL`| | 带Cookie访问受限资源 | `curl -b "sessionid=abc123" https://member.example.com/profile` | | 通过代理访问 | `curl -x http://proxy:8080 https://external.com` | > 提示:使用`curl --help`查看所有选项,或`man curl`查看完整手册。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值