你是否曾为了测试一个 API 而苦恼,或是想快速检查一个网页的内容?好消息,cURL 可能正是你需要的工具。简单地说,cURL 是一个强大的命令行工具,它允许我们通过各种协议与服务器进行交互。不管你是一位新手程序员还是一个经验丰富的开发者,cURL 都是你工具箱中不可或缺的一部分。
curl 是一种使用 URL 从服务器传输数据或向服务器传输数据的工具。它支持以下协议:DICT、FILE、FTP、FTPS、GOPHER、GOPHERS、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、MQTT、POP3、POP3S、RTMP、RTMPS、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、TELNET、TFTP、WS 和 WSS。几乎可以满足所有网络请求的需要,一般情况下使用电脑自带的命令行工具就可以测试 cURL 命令,比如在 Windows 中点击“Win + R”,然后输入cmd
后打开命令行工具,然后输入 cURL 命令(如curl https://apifox.com
)并按“Enter”回车键,就会给你返回响应数据。
curl参数
-o/--output:指定输出文件的名称,用于下载文件时保存到指定位置。
-O/--remote-name:根据URL中的文件名部分来保存文件,这在下载时特别有用。
-T/--upload-file:上传文件时使用,指定要上传的本地文件。
-e/--referer:设置HTTP Referer头部,用于伪造来源页面或进行盗链。
-A/--user-agent:设置User-Agent字符串,模仿浏览器或其他客户端。
-X/--request:指定HTTP请求方法,如GET、POST等。
-d/--data:发送HTTP POST请求时,附带的数据。
-b/--cookie:设置Cookie字符串,用于处理会话。
-s/--silent:静默模式,不显示进度和错误信息。
-S/--show-error:显示错误信息,即使使用了-s选项。
-L/--location:跟随重定向,如果请求的页面被移动了,这个选项会让curl重新定向到新的地址。
-i/--include:在输出中包含HTTP响应头。
-v/--verbose:详细模式,显示所有通信过程。
-H/--header:自定义HTTP头部信息。
--trace:跟踪请求的所有步骤,用于调试。
--limit-rate:限制数据传输速率。
--connect-timeout:设置连接超时时间。
常用 cURL 命令
让我们来看看 cURL 的一些常用命令及其使用场景。
1. 获取网页内容
使用curl [URL]
命令获取网页内容,示例如下:
curl https://apifox.com
这个命令会显示https://apifox.com
网页的 HTML 内容。
2. 发送 GET 请求
使用curl -X GET [URL]
发送 GET 请求。
curl -X GET https://apifox.com
这条命令使用 GET 方法向https://apifox.com
发起请求,通常用于请求查询信息。
3. 发送 POST 请求
使用curl -X POST -d "data" [URL]
发送 POST 请求。
curl -X POST -d "param1=value1¶m2=value2" https://apifox.com/login
使用 POST 方法提交数据,常用于表单提交。
4. 上传文件
使用curl -F "file=@[file_path]" [URL]
上传文件。
curl -F "file=@path/to/local/file" https://apifox.com/upload
这条命令可以上传文件到指定的服务器地址。
5. 下载文件
使用curl -O [URL]
下载文件。
curl -o filename https://apifox.com/file
这个命令将远程文件下载并保存为本地的 filename。
6. 设置请求头
使用curl -H "Header: Value" [URL]
设置请求头。
curl -H "Content-Type: application/json" https://apifox.com
通过这条命令加入自定义的请求头,非常有用,比如指定内容类型为 JSON。
7. 保存和使用 Cookies
保存会话 Cookies:curl -c cookies.txt [URL]
。
curl -c cookies.txt https://apifox.com
这个命令可以在访问网站时保存 session Cookies 到本地文件。
8. 重定向处理
自动处理重定向:curl -L [URL]
,检查重定向链接:curl -i [URL]
。
curl -L https://apifox.com
如果遇到重定向,这个命令会自动追踪到新的位置。
9. 设置超时时间
设置连接和响应超时:curl --connect-timeout [seconds] --max-time [seconds] [URL]
。
curl -m 10 https://apifox.com
设置最大传输时间为 10 秒,防止过长时间等待。
参考:
1、https://blog.csdn.net/jg_csdn/article/details/137783833
2、https://zhuanlan.zhihu.com/p/636354503
3、https://blog.csdn.net/angle_chen123/article/details/120675472