curl命令详解

curl用于和服务端交互,而不用经过网页界面认为操作,常用于判定指定url的服务是否能正常调用。
curl的基本用法:
1.判定指定url连通性,curl -v https://www.baidu.com
 
2.调用接口,curl -H "Content-Type:application/json" -X POST -d '{"operator": "killianxu","place_type":"tt"}' http://www.killianxu.cn/api/get_place_list
可在网页https://curl.trillworks.com/,将curl调用转换为python代码
3.判定https的url是否连通,并获取其它交互的详细信息,包括tcp连接延时,SSL握手延时等,curl -m 2 -k -sS  -v -w '%{time_connect}\n%{time_total}\n%{http_code}\n%{time_appconnect}\n' https://118.24.225.168:22 -H Host:1557367664.cq.1253702919.clb.myqcloud.com --trace-time
 
-m,--max-time <seconds>整个交互完成的超时时间。
-k ,--insecure,建立不安全连接。用于https协议,SSL握手过程,从服务端获取的证书,不进行验证。
-sS,请求发生错误时,显示错误信息,比如这里的curl: (28) Operation timed out after 2001 milliseconds with 0 out of -1 bytes received。
-v显示请求的详细过程,用于调试的目的,如果不加-v,显示如下:
 
-w,--write-out <format>定义请求完成时要显示的信息。这里的format为'%{time_connect}\n%{time_total}\n%{http_code}\n%{time_appconnect}\n',time_connect为tcp连接时间,time_appconnect为SSL握手时间,time_total是总时间,http_code是状态码(000有很多原因,包括tcp连接延时、ssl握手延时、操作超时等,这里可通过输出的错误信息查看原因),更多可显示的其他信息可man curl查看。
-H,--header <header>定义头部信息
--trace-time,显示curl过程的时间戳,用于查看时间耗在哪步。
 
当进行大量curl请求时,会出现SSL握手延时整体变大的情况,跟curl版本有关系。
NSS版本的curl SSL握手第一步时间比较长,可能和实现方式有关,可换为OpenSSL版本。
OpenSS版本curl安装如下(可安装在任意路径,不会覆盖已有版本):
2.tar -jxvf curl-7.65.3.tar.bz2
3. ./configure
4.make
 
 
posted @ 2019-08-22 19:42  程序猿k哥  阅读(6341)  评论(1编辑  收藏  举报