cURL命令

本文介绍如何使用curl命令从网络获取页面、图片等文件,以及如何通过curl处理网页表单,包括GET和POST方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

curl(cURL)是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。

二.获得页面(下载文件、图片)

使用命令:curl http://www.baidu.com

这是最简单的使用方法。用这个命令获得了http://www.baidu.com指向的页面。同样,如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。如果下载的是HTML文档,那么缺省的将不显示文件头部,即HTML文档的header。要全部显示,请加参数 -i,要只显示头部,用参数 -I。任何时候,可以使用 -v 命令看curl是怎样工作的,它向服务器发送的所有命令都会显示出来。为了断点续传,可以使用-r参数来指定传输范围。

二.获取表单

在WEB页面设计中,form是很重要的元素。Form通常用来收集并向网站提交信息。提交信息的方法有两种,GET方法和POST方法。

1.先讨论GET方法,例如在页面中有这样一段:

<form method="GET" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value="OK">
</form>

那么浏览器上会出现一个文本框和一个标为“OK”的按钮。按下这个按钮,表单就用GET方法向服务器提交文本框的数据。

例如原始页面是在 www.hotmail. com/when/birth.html看到的,然后您在文本框中输入1905,然后按OK按钮,那么浏览器的URL现在应该是:“www.hotmail. com/when/junk.cgi?birthyear=1905&press=OK

对于这种网页,curl可以直接处理,例如想获取上面的网页,只要输入:

curl "www.hotmail. com/when/junk.cgi?birthyear=1905&press=OK"

2.表单用来提交信息的第二种方法叫做POST方法,POST方法和GET方法的区别在于GET方法使用的时候,浏览器中会产生目标URL,而POST不会。类似GET,这里有一个网页:

<form method="POST" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value="OK">
</form>

浏览器上也会出现一个文本框和一个标为“OK”的按钮。按下这个按钮,表单用POST方法向服务器提交数据。

这时的URL是看不到的,因此需要使用特殊的方法来抓取这个页面:

curl -d "birthyear=1905&press=OK" www.hotmail. com/when/junk.cgi
<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`查看完整手册。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值