curl 工具的使用
curl命令是个功能强大的网络工具,支持通过http、ftp等方式下载文件、上传文件。还可以用来抓取网页、网络监控等方面的开发,解决开发过程中遇到的问题。
常用参数
curl命令参数很多,这里只列出我曾经用过、特别是在shell脚本中用到过的那些。
-v/--verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。
-m/--max-time <seconds> 指定处理的最大时长
-H/--header <header> 指定请求头参数
-s/--slient 减少输出的信息,比如进度
--connect-timeout <seconds> 指定尝试连接的最大时长
-x/--proxy <proxyhost[:port]> 指定代理服务器地址和端口,端口默认为1080
-T/--upload-file <file> 指定上传文件路径
-o/--output <file> 指定输出文件名称
-d/--data/--data-ascii <data> 指定POST的内容
--retry <num> 指定重试次数
-e/--referer <URL> 指定引用地址
-I/--head 仅返回头部信息,使用HEAD请求
1、curl安装
sudo apt-get install curl
2、GET请求
curl http://www.baidu.com,回车之后,HTML内容打印在屏幕上;如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。
curl -i "http://www.baidu.com" 显示全部信息
curl -l "http://www.baidu.com" 只显示头部信息
curl -v "http://www.baidu.com" 显示get请求全过程解析 wget "http://www.baidu.com"也可以
3、下载
curl –o linjiqin http://www.cnblogs.com/linjiqin,执行后可以看到下载进度提示,完成100%后会自动退出了,把网页保存到linjiqin中。
它还有一个大写O的选项,是按照服务器上的文件名保存到本地,如果执行curl –O http://www.cnblogs.com,是会报错的,提示找不到文件名,如果换成curl –O http://www.cnblogs.com/linjiqin/p/5401969.html,就自动保存文件为5401969.html。
4、上传
-T/--upload-file:往服务器上传文件 用法:
上传多个文件
curl -T "img[1-1000].png" ftp://example.com/upload/ 上传多个文件
curl -T "{file1,file2}" http://www.example.com
5、POST方法
-d或--data参数:post请求,用法为curl -d "id=1&name=test" http://example.com/example.php,需把请求的参数和URL分开,同时可以使用curl -d "id=1" -d "name=test" http://example.com/example.php,相当于提交了两个参数。当提交的参数值中有特殊字符就需要先转义。如空格时,就需要转义成%20。 --data-urlencode参数:可以自动转义成特殊字符,无需人工事先转义。
curl --data-urlencode "name=April 1" http://example.com/example.php -F或--form:将本地文件上传到服务器,用法为:curl -F "filename=@/home/test/test.pic" http://example.com/example.php 。千万不能漏掉@符号。
6、设置referer
有时候我们如果直接请求某个URL不能成功,它需要判断referer是否正确,那就可以通过-e或--referer参数模拟
curl --referer http://www.example.com http://www.example.com
7、指定User Agent
-A/--user-agent:伪装成指定的浏览器Chrome访问,用法: curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" www.baidu.com
8、伪造cookie
-b或--cookie: 有两种用法,一是指定参数和值:curl --cookie "name=xxx" http://www.example.com ;二是从文件读取:curl -b /cookie.txt http://www.example.com
9、保存cookie
-c/--cookie-jar:curl命令执行后保存操作时生成的cookie到文件: curl -c ./cookie.txt -d username=aaaa -d pwd=****** http://www.example.com
10、定义输出显示内容
-w/--write-out: 可以定义输出的内容,如常用的http码,tcp连接时间,域名解析的时间,握手时间及第一时间响应时间等,非常强大。 、打印出返回的http码
curl -o /dev/null -s -w %{http_code} "http://www.baidu.com"
、打印响应时间
curl -o /dev/null -s -w "time_total: %{time_total}\n" "http://www.baidu.com"
安装及配置参考资料:
http://www.linuxidc.com/Linux/2014-11/109910.htm
curl 工具的使用的更多相关文章
- Elasticsearch笔记二之Curl工具基本操作
Elasticsearch笔记二之Curl工具基本操作 简介: Curl工具是一种可以在命令行访问url的工具,支持get和post请求方式.-X指定http请求的方法,-d指定要传输的数据. 创建索 ...
- Curl工具的使用
Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windows下执行curl命令. 工具下载 在官网处下载工具包:http:// ...
- curl工具介绍和常用命令
curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.Linux发行版中,并且有DOS和Win32.Win64的移植版本.curl是一个利用URL规则在命令行下工作的文 ...
- linux curl工具
http://www.linuxidc.com/Linux/2008-01/10891.htm http://www.cnblogs.com/-clq/archive/2012/01/29/23308 ...
- curl工具
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 用法: cu ...
- curl工具使用实例
curl是一个命令行工具,其基于libcurl库,用于发送网络请求,获取并展示响应数据,下面来看curl的具体用法. 1.下载网页源码 curl命令直接接URL,用于下载指定URL的网页源码,并将其显 ...
- linux之curl工具
curl是一个利用URL语法在命令行下工作的文件传输工具,作用是发出网络请求,然后获取数据:它支持文件的上传和下载:支持多种通信协议. 一.查看网页源码 直接在 curl 命令后加上网址,默认会发送 ...
- curl 工具收集
注意:curl 目标地址不能使用 0.0.0.0: port, 这样会curl返回结果显示不正常: 实际上有返回,但是curl提示没有数据.
- linux日常管理-curl工具
curl 在linux命令行中用于访问网站,下载东西, 可以用 curl www.qq.com 访问 出现很多源代码 ///////////////////////////////////////// ...
随机推荐
- Android 之px于dp在Java代码中的转换
现在由于用到了,使用代码进行动态布局,所以需要进行px于dp之间的转换. 现将其封装为方法,以便于调用. public int DpToPx(Context context,float dp){ fl ...
- Ubuntu里的若干问题解决方案
1. Ubuntu里出现两个屏幕,并且其中一个是“未知显示器”,无法去除时,可以尝试使用该命令:sudo apt-get install bumblebee-nvidia 2.虚拟机上Ubuntu开机 ...
- GBDT和RF的区别
去XX公司实习的时候,被问过,傻逼的我当时貌似都答错了,原谅全靠自学的我,了解甚少 RF随着树的增加不会过拟合 GBDT随着树的增加会过拟合 RF还会对特征进行random,例如特征的个数m=sqrt ...
- mxnet目录结构
普通目录 R-package, R语言API, 因为用的python, 所以对R暂时不感兴趣 amalgamation, 将整个mxnet库打包成一个文件, 以方便直接在客户端调用, 如Android ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- Linux上服务的启动,停止和重启
(1)查看所有的服务 [berry@berry:practice] service Usage: service < option > | --status-all | [ service ...
- bzoj4264: 小C找朋友
hash大法好 #include <iostream> #include <cstdio> #include <cstring> #include <cmat ...
- Xcode 修改工程名以及注意事项
1.先把整个工程文件夹名改为新的工程名. 2.打开工程,单击,输入新的工程名,会出现,点击确定. 3.回到工程界面,在中选择 Manage Schemes,然后再弹出的对话框,把工程名改为新的名字. ...
- ApsCMS AspCms_SettingFun.asp、AspCms-qqkfFun.asp、AspCms_Slide.asp、AspCms_StyleFun.asp、login.asp、AspCms_CommonFun.asp Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 AspCMS管理系统有较多漏洞,涉及到SQL注入.密码泄漏.后台写SHE ...
- QCustomPlot 使用整理
QCustomPlot 是一个比较小的 QT 图表插件.使用时,我们在程序中写完相关调用的代码后,只需将 QCunstomPlot.cpp 和 QCustomPlot.h 两个文件加入工程,正常编译即 ...