Mastering curl and wget: A Comprehensive Guide from Basics to Advanced Usage

下面将 curlwget 的用法分成基础版和进阶版,涵盖常用与高级功能。


基础版

1. curl 基础用法

a. 发送 GET 请求

这是最基本的 curl 用法,向指定的 URL 发送一个 GET 请求并打印结果到终端:

curl http://example.com
b. 保存文件

将服务器响应的数据保存为一个文件:

curl -o output.html http://example.com
c. 下载文件并使用原始文件名

如果你希望文件保持服务器上的文件名:

curl -O http://example.com/file.zip
d. 发送 POST 请求

POST 请求提交数据:

curl -X POST -d "param1=value1&param2=value2" http://example.com
e. 查看 HTTP 响应头

使用 -I 选项只请求 HTTP 响应头信息:

curl -I http://example.com

2. wget 基础用法

a. 下载文件

wget 默认下载文件并保持原文件名:

wget http://example.com/file.zip
b. 指定文件名保存

可以指定保存的文件名:

wget -O newfile.zip http://example.com/file.zip
c. 递归下载

从网页下载所有链接,适合下载整个网站内容:

wget -r http://example.com
d. 静默模式

在静默模式下不显示下载进度条:

wget -q http://example.com
e. 继续下载

断点续传未完成的下载:

wget -c http://example.com/file.zip

进阶版

1. curl 进阶用法

a. 发送自定义请求头

curl 允许通过 -H 添加自定义 HTTP 请求头:

curl -H "Authorization: Bearer your_token" http://example.com
b. 跟随重定向

默认情况下,curl 不会自动跟随重定向。使用 -L 来启用这个功能:

curl -L http://example.com
c. 通过代理

使用代理服务器来发送请求:

curl -x http://proxy.example.com:8080 http://example.com
d. 上传文件

通过 -F 上传文件到服务器(表单提交):

curl -F "file=@/path/to/file.txt" http://example.com/upload
e. 添加 Cookie

发送包含特定 Cookie 的请求:

curl -b "name=value" http://example.com
f. 发送 JSON 数据

发送 JSON 数据时,可以指定 Content-Type 并传递 JSON:

curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1"}' http://example.com/api
g. 显示详细的请求和响应

使用 -v 查看详细的请求过程(非常适合调试):

curl -v http://example.com
h. 限制下载速度

为了限制带宽,可以通过 --limit-rate 设置最大下载速度:

curl --limit-rate 200k http://example.com/file.zip
i. 多部分表单上传

上传多个文件或字段时,使用多部分表单提交:

curl -F "file1=@/path/to/file1" -F "file2=@/path/to/file2" http://example.com/upload
j. 组合多个请求(API测试)

curl 测试 API 时,可以将多个请求组合在一起:

curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' http://example.com/api/users

2. wget 进阶用法

a. 下载整个网站

递归下载并保存整个网站结构:

wget --mirror -p --convert-links -P ./local http://example.com
  • --mirror: 递归下载整个网站。
  • -p: 下载网页上所有相关资源(如图片、CSS)。
  • --convert-links: 将链接转换为本地文件链接。
  • -P: 指定保存位置。
b. 限速下载

限制下载速度,避免占用过多带宽:

wget --limit-rate=200k http://example.com/file.zip
c. 指定用户代理

使用 --user-agent 来设置用户代理(模仿浏览器):

wget --user-agent="Mozilla/5.0" http://example.com
d. 重试下载

如果下载失败,可以通过 --tries 选项来设置重试次数:

wget --tries=10 http://example.com/file.zip
e. 自动下载时间间隔

在多个文件下载之间设置等待时间,避免服务器负载过高:

wget --wait=10 -r http://example.com
f. 使用 FTP 下载文件

wget 也支持 FTP 协议的文件下载:

wget ftp://example.com/file.zip
g. 通过代理

通过指定的代理服务器进行下载:

wget -e use_proxy=yes -e http_proxy=http://proxy.example.com:8080 http://example.com
h. 忽略 SSL 证书错误

如果遇到不受信任的 SSL 证书,可以用 --no-check-certificate 忽略:

wget --no-check-certificate https://example.com/file.zip

总结

  • 基础版 主要包含一些常见的操作,如简单的下载、POST 请求、断点续传等。
  • 进阶版 涉及更多高级功能,如代理设置、限速、复杂的多部分上传、递归下载网站等。

这些功能让 curlwget 在处理 Web 请求、文件下载、以及与 API 交互时都非常灵活和强大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值