码迷,mamicode.com
首页 > Web开发 > 详细

linux curl 使用详解 常见应用

时间:2017-09-06 00:25:00      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:linux   curl   

curl


1 http 超时

-m 指定超时的时间 等于--connect-timeout


2 输出到空

-o /dev/null 不输出,正常是输出html格式


3 -w 指定格式输出


4 -s 去掉所有状态信息的输出


5 -F 上传表单


6 -e/--referer <URL>  指定referer


7 -H/--header <header> 指定Header头部


8 -v 查看详细的请求建立信息,可以看到request的Header头部


9 -L 当重定向的时候,发起新的请求


10 --user 认证的用户名


11 -XGET  请求方式,默认是GET


12 --data-binary  以二进制的方式上传,没有任何处理

 

13 --data-urlencode 大致等同于-d 或者--data


14 -o Write output to <file> instead of stdout


15 -x 代理访问


三者区别:

-d/--data is the same as --data-ascii. To post data purely binary, you should instead use the --data-binary option. To URL-encode  the

value of a form field you may use --data-urlencode.





应用一: 超时设置


curl -m 3 -o /dev/null -s -w %{http_code}"\n"  www.letuknowit.com


只输出状态码,并换行"\n"



注意如果超时 http_code 是 000



应用二: 探测web各个链路建立响应的时间点


curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}:%{time_namelookup}"\n" http://www.canada.com


0.081:0.272:0.779:0.356


清单 1 给出对一个流行的新闻站点执行 curl 命令的情况.输出通常是 HTML 代码,通过 -o 参数发送到 /dev/null.-s 参数去掉所有状态信息.-w 参数让 curl 写出表 1 列出的计时器的状态信息:


表 1. curl 使用的计时器


计时器 描述

time_connect 建立到服务器的 TCP 连接所用的时间

time_starttransfer 在发出请求之后,Web 服务器返回数据的第一个字节所用的时间

time_total 完成请求所用的时间

time_namelookup DNS解析时间,从请求开始到DNS解析完毕所用时间(记得关掉 Linux 的 nscd 的服务测试)

speed_download 下载速度,单位-字节每秒。

这些计时器都相对于事务的起始时间,甚至要先于 Domain Name Service(DNS)查询.因此,在发出请求之后,Web 服务器处理请求并开始发回数据所用的时间是 0.272 – 0.081 = 0.191 秒.客户机从服务器下载数据所用的时间是 0.779 – 0.272 = 0.507 秒.





应用三: 上传表单数据 上传图片

curl -e "http://www.kkfang.com/cuizhiliang" -F "filename=@./testtest_1111.jpg" "http://upload.kkfang.com/upload/housea.html"



示例:

-F/--form <name=content

curl -F "file=@localfile;filename=nameinpost" url.com



@后面接的是一个文件路径



应用四: 模拟修改Header头部


-H "Cache-Control:no-cache"

curl  -x127.0.0.1:6081 "http://www.kkfang.com/bj" -H "User-agent:"Googlebot""


多个Header头一起使用


curl -v -I -H "Host:www.kkfang.com" -H "User-Agent:Ba" http://www.kkfang.com


curl -v -I -H "Host:www.kkfang.com" -H "User-Agent:Ba"  -H "Cache-Control:no-cache" http://www.kkfang.com





应用五: 重定向的主站

curl -IL  http://www.dianping.com


会302 跳转到城市列表页 Location:/citylist


301重定向与302重定向的区别

  302重定向是暂时的重定向,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。 SEO 302好于301

  301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。




应用六: --user  调用jenkins的api 获取配置文件

curl -XGET http://jenkins.anhouse.com.cn/job/ST-ananzu-service/config.xml --user cuizhiliang344:Czl110123






应用七: post数据,加上shell的变量传递,执行jenkins JOB并修改数据

/usr/bin/curl -m 5 -s -w %{http_code} -X POST JENKINS_URL/job/JOB_NAME/build --data-urlencode json=‘{"parameter": [{"name":"id", "value":"123"}, {"name":"‘${_TASK_NAME}‘", "value":"high"}]}‘




应用八: 输出内容

curl -s -XGET http://jenkins.anhouse.com.cn/job/ST-ananzu-service/config.xml --user cuizhiliang344:Czl110123   -o config.txt


或者使用> 进行重定向

curl -s -XGET http://jenkins.anhouse.com.cn/job/ST-ananzu-service/config.xml --user cuizhiliang344:Czl110123  > config.txt



本文出自 “残剑” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1962915

linux curl 使用详解 常见应用

标签:linux   curl   

原文地址:http://cuidehua.blog.51cto.com/5449828/1962915

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!