使用cURL和wget在Linux上进行HTTP请求和下载

cURL发送GET请求:curl http://example.com cURL发送POST请求:curl -d "key=value" http://example.com cURL下载文件:curl -o filename http://example.com wget下载文件:wget http://example.com wget指定目录下载:wget -P /path/ http://example.com 这就是坑:不要混淆cURL和wget的基本用法。
实操提醒:先从最简单的命令开始,逐步深入。

哎,上次帮朋友装修房子,那可真是踩了不少坑啊。
记得那会儿,2 01 8 年夏天,我在北京找装修队,结果就遇上了个坑货。
当时,我朋友家是9 0平米的二手房,想着找个靠谱的装修队,结果呢,那装修队一上来就给我报价说全包下来只要8 万,我当时一听,觉得挺划算的,就定了下来。

结果呢,装修过程中问题不断。
先说水电改造,那工人手艺真是烂到家了,水管接得歪歪扭扭,电线乱七八糟,我朋友看了直摇头。
我还记得那时候,我每天都要去现场盯着,生怕出了什么岔子。

然后是材料问题,装修队说用的都是品牌材料,结果我一看,那材料质量简直不敢恭维,有的甚至都不是正品。
我朋友是个细致人,她发现地板的纹理都不对,墙漆颜色也和样品不一样。

最让我生气的是,装修队工期拖延严重。
本来约定3 个月完工,结果拖到了半年才完工。
期间,我催了好几次,他们总是找借口推脱。

最后,我不得不自己找人来整改,结果又花了不少钱。
这次经历让我深刻认识到,装修这事儿,真是不能只看价格,得找个靠谱的团队。
现在回想起来,当时要是能多花点时间找资料,多问问朋友,也许就不会上这个当了。
哎,说起来都是泪啊。

获取curl命令返回结果

嘿,跟你唠唠我当年搞这个curl的事儿。

去年在服务器上捣鼓网站,突然发现一个接口挂了。
我赶紧打开终端,敲了句 curl -I https://那个烂摊子的网址.com。
结果哗啦啦一大堆东西出来,最后头一行是 HTTP/1 .1 5 03 Service Unavailable,哎哟,立马知道是服务器出问题了。
这招挺好,想看头信息的时候用。

后来啊,我搞自动化脚本,不想看那些乱七八糟的输出,只想知道死活。
就在命令后面加上了 -o /dev/null -s -w "%{http_code}" https://那个烂摊子的网址.com。
啥也没印出来,光在屏幕上亮了个 2 00。
嘿,这招省事儿。

再后来,有个小兄弟问我为啥他curl请求老是失败,我让他加个 -v 看看。
结果他给我发回一长串,从 GET / 到 </> 全给我列出来了。
哎,这招适合排错,但平时真不用。

你要是在Python里搞,我当年用过 subprocess 模块。
比如 subprocess.run(['curl', '-s', '-w', "%{http_code}", "https://那个烂摊子的网址.com"]),然后看返回值。
这挺好,脚本里用着顺手。

不过啊,你要是问啥时候用哪个,我当年是这么分的:
查头信息,用 -I。

只看状态码,用 -o /dev/null 那套。

排错,用 -v。

脚本里,用 subprocess。

哎,说到底还是得看场景。
你具体啥时候用,我再帮你瞅瞅。