在写一些 Shell 测试用例时需要检测 url 的状态是否为 200,这时如果能只获取它的状态码是最理想的,cURL 可以很方便的实现。
-w 可以格式化输出 reponse 的返回结果。
1 | $ curl -w "%{http_code}" https://baidu.com |
访问带有跳转性质的网站,我们还需要加上 -L 做进一步跳转,同时为了避免当资源过大请求缓慢的情况,通过 -I 只返回头信息
1 | $ curl -IL -w "%{http_code}" https://baidu.com |
然后隐藏掉打印信息,将打印的结果输出到 /dev/null
1 | $ curl -IL -w "%{http_code}" -o /dev/null https://baidu.com |
竟然还有多余信息,继续使用 -s 不显示进度和错误信息
1 | $ curl -sIL -w "%{http_code}" -o /dev/null https://baidu.com |
最后的最后,默认输出是不换行的,也就是会带有一个 % 符号,我们有两种方式去掉它
输出换行
1 | $ curl -sIL -w "%{http_code}\n" -o /dev/null https://baidu.com |
使用 echo
1 | $ echo $(curl -sIL -w "%{http_code}" -o /dev/null https://baidu.com) |
-w 的一些其它参数,没有注明的可以自行测试下
url_effectivehttp_code状态码http_connecttime_total请求总用时time_namelookupDNS 域名解析的时候,就是把 https://baidu.com 转换成 ip 地址的过程time_connectTCP 连接建立的时间,就是三次握手的时间time_appconnectSSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间time_redirect从开始到最后一个请求事务的时间time_pretransfer从请求开始到响应开始传输的时间time_starttransfer从请求开始到第一个字节将要传输的时间size_downloadsize_uploadsize_headersize_requestspeed_downloadspeed_uploadcontent_typenum_connectsnum_redirectsftp_entry_path
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章