linux实用命令详解(一)—curl

Eric 2014.02.25

开发web应用时经常需要接口调试,有很多现成的工具可以使用,但大部分都比较复杂,太笨重,个人感觉比较好用的就是postman和curl了,基本可以应付各种调试需求

curl是一个数据传输工具,支持HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP or FILE 协议。该命令不支持用户交互

[bash]curl www.javaranger.com[/bash]

如果要把这个网页保存下来,可以使用-o参数,相当于wget命令

[bash]curl -o fileName  www.javaranger.com[/bash]

[bash]curl www.javaranger.com >1.txt[/bash]

显示头信息(-I只显示头信息)

[bash]curl -i www.javaranger.com[/bash]

有的网址是自动跳转的。使用-L参数,curl就会跳转到新的网址。

[bash]curl -L www.javaranger.com[/bash]

-v参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。

[bash]curl -v www.javaranger.com<br /><br />curl –trace www.javaranger.com[/bash]

发送post信息(-H是添加请求头, -d是请求体)

[bash]curl -H "Content-Type:application/soap+xml; charset=UTF-8" -d@/tmp/feiren http://113.105.64.226/v1/NorthBoundAPIService.asmx<br />[/bash]

添加User Agent

[bash]curl –user-agent "[User Agent]"  www.javaranger.com[/bash]

添加cookie

[bash]curl –cookie "name=xxx" www.javaranger.com[/bash]

查看接口相应时间

[bash]curl -o /dev/null -s -w "%{time_connect}:%{time_starttransfer}:%{time_total}\n" http://www.javaranger.com[/bash]

第一个是从命令启动到链接上用的时间
冒号是分隔符(可以在自己的 -w 模板里头修改这个分隔符,比如可以用\t或者|,自己改改看)
第二个字段,是开始传输数据所用的时间
第三个字段,是完成传输所用的时间
这三个时间对于判断网络状况和系统性能是很有帮助的

再比较下面两个命令结果的不同:

[bash]$ export $SEP=’|'<br />$ curl -o 1.txt -s -w "%{time_connect}$SEP%{time_starttransfer}$SEP%{time_total}\n" http://www.javaranger.com</p><p>$ curl -o 1.txt -s -w ‘%{time_connect}$SEP%{time_starttransfer}$SEP%{time_total}\n’ http://www.javaranger.com</p><p>[/bash]

结果:

0.12|3.23|3.35
0.12$SEP3.23$SEP3.35
” “(双引号)包围的字串里头会替换变量

‘ ‘单引号里面你的字符串不会被替换。

 

(转载本站文章请注明作者和出处 JavaRanger – javaranger.com ,请勿用于任何商业用途)

本文链接: http://www.javaranger.com/archives/1158 

 

posted @ 2016-10-19 02:15  林博士  阅读(1017)  评论(0编辑  收藏  举报