curl常用参数

curl是常用的网络调试工具,特别是HTTP请求用它调试非常方便。

参数大纲

参数 说明
-v 打印头信息
-X 设置请求方法,其中POST方法经常与-d搭配使用
-d 设置POST请求体-d 'type=0?enable=1'
-o 下载文件,如:-o 1.txt。若指定-v -o /dev/null可以值看请求过程方便调试
-L 自动处理重定向
-H 设置请求头,如-H "Content-Type: application/json",多个头可增加多个-H参数
-k 忽略TSL/SSL证书检查
-s 不打印下载等细节的进度,可以使调试内容更清晰
--limit-rate 限制带宽
--resolve 设置请求链接的IP,例如--resolve *:443:127.0.0.1,即所有连接至443端口的请求,都连接至127.0.0.1这台机器

简单示例

  1. 执行以下命令会将http://baidu.com页面的原始内容打印在控制台
$ curl -X GET http://baidu.com
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
  1. -X GET告诉curl执行的是GET请求,由于curl默认行为是GET,因此GET请求的-X参数可以省略,如
$ curl http://baidu.com
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
  1. "http://"也可以省略,省略后如
$ curl baidu.com
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>

常用参数

上面3组命令都是将http://baidu.com的页面内容打印在控制台,但要满足真实场景的需要还远远不够。

-v 打印详情

使用频率:☆☆☆☆☆
参数用途:增加-v参数后curl会将执行过程打印在控制台,包括建立tcp连接、TSL/SSL握手、请求头、响应头等信息打印出来,可以很方便的查看请求细节

$ curl -v baidu.com
* Rebuilt URL to: baidu.com/
*   Trying 110.242.68.66...
* TCP_NODELAY set
* Connected to baidu.com (110.242.68.66) port 80 (#0)
> GET / HTTP/1.1
> Host: baidu.com
> User-Agent: curl/7.54.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Wed, 27 Jul 2022 14:50:52 GMT
< Server: Apache
< Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
< ETag: "51-47cf7e6ee8400"
< Accept-Ranges: bytes
< Content-Length: 81
< Cache-Control: max-age=86400
< Expires: Thu, 28 Jul 2022 14:50:52 GMT
< Connection: Keep-Alive
< Content-Type: text/html
< 
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
* Connection #0 to host baidu.com left intact

-X 修改请求方法

使用频率:☆☆☆
-X <METHOD>用于指定请求方法,HTTP协议规定的请求方法有GET、POST、PUT、DELETE、HEAD等,但该参数实际上可以并不对请求是否满足HTTP协议要求。

$ curl -v -X GET baidu.com # 如前面所述GET请求的-X参数可省
... 
< HTTP/1.1 200 OK
...


$  curl -v -X POST baidu.com # 该命令只为做演示,因为baidu.com这个地址并不响应POST请求
...
< HTTP/1.1 200 OK
...

-o 下载文件

-o FILE
使用频率:☆☆☆
参数用途:curl 默认行为是将请求体打印在控制台,但可以通过-o参数指定文件,即下载url到指定路径

$ curl -o logo.png https://www.baidu.com/img/flexible/logo/pc/result.png
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6617  100  6617    0     0  31318      0 --:--:-- --:--:-- --:--:-- 31360

$ file logo.png # file命令可以查看文件格式,可见已经成功将上述logo下载至本地
logo.png: PNG image data, 202 x 66, 8-bit/color RGBA, non-interlaced

-L 跟踪重定向

-L
使用频率:☆☆☆
参数用途:大部分编程语言的网络封装库均会自动处理http协议的3xx重定向,这对于使用这些编程语言的应用不需要特别关注重定向的执行细节。但curl作为一款调试工具,默认情况下并不会执行重定向请求,这对于调试非常有利。但它也同时提供了自动处理重定向的方法,即增加-L参数。

$ curl -L -v -o logo.png http://mtw.so/5PRds7 
> Host: mtw.so
> User-Agent: curl/7.54.0
> Accept: */*
> 
< HTTP/1.1 302 Move Temporarily
< Content-Type: text/html;charset=UTF-8
< Content-Length: 0
< Connection: keep-alive
< Location: http://www.baidu.com/img/flexible/logo/pc/result.png
... !!! 以下是重定向的请求,如果未增加-L参数到这里就结束了
*   Trying 110.242.68.3...
* TCP_NODELAY set
* Connected to www.baidu.com (110.242.68.3) port 80 (#1)
> GET /img/flexible/logo/pc/result.png HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.54.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: max-age=315360000
< Content-Length: 6617
< Content-Type: image/png
...
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容

  • curl简介 curl是一个开源的命令行工具,它基于网络协议,对指定URL进行网络传输,得到数据后不任何具体处理(...
    万猫学社阅读 1,291评论 0 0
  • 一、安装: (大多数 Linux 发行版都预先安装了 curl 包,不需要自行安装) Ubuntu:sudo ap...
    哎呦666阅读 22,325评论 0 0
  • curl 是一个命令行实用程序,用于将数据从服务器或传输到服务器,该服务器设计用于在没有用户交互的情况下工作。 使...
    叉叉敌阅读 346评论 0 0
  • -A -A参数指定客户端的用户代理标头,即User-Agent。 也可以通过-H参数直接指定标头,更改User-A...
    没错一个废柴阅读 2,849评论 0 0
  • curl简介 curl是一个开源的命令行工具,它基于网络协议,对指定URL进行网络传输,得到数据后不任何具体处理(...
    万猫学社阅读 572评论 0 0