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_namelookupDNS解析时间,从请求开始到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"}]}'

上json数据  并且变量中存在变量

方法1: "'" ${shell变量}"'"

curl -s --url $QINIU_FLUX_API -X POST  -H "Content-Type: application/json"  -H "Authorization: $QINIU_FLUX_TOKEN"  -d '{

"startDate": "'"$YESTERDAY"'",

"endDate": "'"$YESTERDAY"'",

"granularity": "day",

"domains": "dfs.anhouse.com;img.anhouse.com;cdn-event.pinganfang.com;cdn-event.m.pinganfang.com"

}' > ${QINIU_FLUX_STATUS}

方法2: '${变量}' 如以下的两个区别

#值所在的代表值

1
2
3
4
5
6
7
8
declare -A TYPE_ID
TYPE_ID=([internal]=0 [external]=1
        #注意上下区分 传递的类型不同
for _type in external internal
do
        #/usr/bin/curl -s ${URLAPI} -H  "Content-type: application/json" -X POST -d '{"domain_type":"'"${TYPE_ID["${_type}"]}"'","total":"'"${_type_number}"'","stats_time":"'"${F_YESTERDAY}"'"}'
        /usr/bin/curl -s ${URLAPI} -H  "Content-type: application/json" -X POST -d '{"domain_type":'${TYPE_ID["${_type}"]}',"total":'${_type_number}',"stats_time":"'"${F_YESTERDAY}"'"}'
done

注释: 如果post上传的应用程序total参数只接受int型,那么只能用下面的方法,上面的方式会出现string的类型。

应用八: 输出内容

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

本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1962915如需转载请自行联系原作者
cuizhiliang

linux curl 使用详解 常见应用相关推荐

  1. linux curl命令详解(附使用示例)

    Linux curl命令详解 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称u ...

  2. linux curl命令详解,以及实例

    linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道翻 ...

  3. 阿里面试题Linux curl命令详解

    命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具 ...

  4. Linux中curl命令详解(做定时任务超级有用)!

    Linux curl命令详解 命令:curl 在kingle中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具, ...

  5. Linux curl命令使用代理、以及代理种类介绍(附:curl命令详解)

    目录 一.代理服务器分类: 二.Linux curl命令代理设置参数: 三.Linux curl命令设置代理举例: 1.linux curl命令设置http代理: 2.Linux curl命令设置so ...

  6. linux的ping命令含义,Linux ping命令详解

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性 基于IMCP协议 常见命令参数 -q 不显示任何传送封包的信息,只显示最后的结果 -n 只输出数值 -R 记录路由过程 ...

  7. Linux常用命令详解(两万字超长文)

    Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...

  8. Linux chkconfig命令详解

    Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig:    ...

  9. linux kill命令信号,linux kill命令详解

    kill 命令的用途 kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的.我们来看一下 man page 对它的解释:kill - send a signal to a process. ...

最新文章

  1. [LeetCode] Add Digits
  2. python实现二分查找(折半查找)算法
  3. 向腾讯云windows服务器传输文件,如何上传本地文件到腾讯云Windows服务器上?
  4. 程序人生:搜索引擎被禁用,你还会写代码吗?
  5. sql语句update中多个case/when的写法
  6. Linux 命令(14)—— df 命令
  7. java中日历类的用法_java日期类的用法
  8. 《阿里巴巴Java开发手册1.4.0》阅读总结与心得(一)
  9. Android Button 实现渐变背景色、外边框颜色、圆角弧度、点击变色(完整源码)
  10. 【图像去噪】基于matlab中值滤波图像去噪【含Matlab源码 421期】
  11. c语言课后题答案83,C语言练习试题和答案
  12. 使用Java中面向对象的思想来实现两个人的一场战斗
  13. SuperMap iDesktop入门实战-张杰-专题视频课程
  14. C++ 灰度图像伪彩色处理
  15. 2.4G无线模块(NRF24L01)学习(2)——单片机互相控制LED灯
  16. 目前开发人工日多少钱_开发一个app多少钱啊?
  17. 网页游戏的项目设计方案分享
  18. 世界性能服务器图片欣赏,AMD发布全球最强服务器显卡-AMD,全球最强,服务器显卡,FirePro,S9000,S7000,虚拟机 ——快科技(驱动之家旗下媒体)--科技改变未来...
  19. PostgreSQL空间回收利器——pg_repack
  20. 电子电路中,PVDD、CVDD、VPP、 VDD、 AVDD、VCC分别是指什么电源?各起什么作用?

热门文章

  1. 常用巡检语句(oracle)
  2. 《你不可不知的50个建筑学知识》之哥特式建筑
  3. 复杂的数据类型5 - C++快速入门11
  4. ewebeditor 5.2 列目录漏洞
  5. 《程序员代码面试指南》第五章 字符串问题 拼接所有字符串产生字典顺序最小的大写字符串...
  6. spring中间scope详细解释
  7. 阿里巴巴业务平台事业部总负责人墙辉:加速构建国际电商体系
  8. java端模拟http的get、post请求(转)
  9. 2.View绘制分析笔记之onMeasure
  10. mysql登陆提示ERROR 1045 (28000): Access denied for user