curl简单入门
Posted petewell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了curl简单入门相关的知识,希望对你有一定的参考价值。
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。
从curl官网下载你需要的curl版本,这儿我使用的win64位,解压后,将curl.exe文件放置到C:WindowsSystem32
路径下,可是使用命令行敲入curl出现以下图片,表示安装成功。
curl常用参数
-A:随意指定自己这次访问所宣称的自己的浏览器信息
-b/–cookie
-c/–cookie-jar
-C/–continue-at
-d/–data : HTTP POST方式传送数据
-D/–dump-header
-F/–form
-v/–verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。
-m/–max-time
-H/–header
-s/–slient 减少输出的信息,比如进度
–connect-timeout
-x/–proxy
-T/–upload-file
-o/–output
–retry
-e/–referer
-I/–head 仅返回头部信息,使用HEAD请求
-u/–user
-O:按照服务器上的文件名,自动存在本地
-r/–range
-T/–upload-file
curl实现GET/POST请求
直接访问站点
curl http: # https地址可以直接访问 curl https:
保存访问页面/资源
# 将网站的首页保存到当前目录index.html文件中 curl -o index.html http: # 将网站上面的资源以原来的名称 保存到当前目录 curl -O http://www.XXXX.com/banner.jpg
GET方式请求
curl http://www.example.com?username=kuku&passwd=123456 # A/001.JPG -> 下载后: 001-A.JPG 原来: B/001.JPG -> 下载后: 001-B.JPG curl -o #2_#1.jpg http://www.XXXX.com/~{A,B}/[001-201].JPG
Post方式请求
curl -d "username=kuku&passwd=123456" http://www.example.com
模拟表单信息,模拟登录
# 保存cookie信息 curl -c ./cookie_c.txt -F log=aaaa -F pwd=*** http://www.XXXX.com/login.htm # 保存header信息 curl -D ./cookie_D.txt -F log=aaaa -F pwd=*** http://www.XXXX.com/login.htm # 使用cookie文件 curl -b ./cookie_c.txt http://www.XXXX.com/admin.htm
断点续传 -C(大写)
curl -C -O http://www.XXXX.com/banner.jpg
伪造来源地址,防盗链
curl -e http://localhost http://www.XXXX.com/login.htm
代理IP
curl -x xx.xx.xx.xx:xxxxx -o index.html http://www.XXXX.com
分段下载
curl -r 0-100 -o img.part1 http://www.XXXX.com/banner.jpg curl -r 100-200 -o img.part2 http://www.XXXX.com/banner.jpg curl -r 200- -o img.part3 http://www.XXXX.com/banner.jpg cat img.part* > img.jpg
显示/隐藏下载进度条
# 隐藏进度条 curl -s -o aaa.jpg http://www.baidu.com/img/bdlogo.gif # 显示进度条 curl -O aaa.jpg http://www.baidu.com/img/bdlogo.gif
模拟浏览器头
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o index.html -D cookie0001.txt http://www.baidu.com
文件上传
一点需要注意的是,POST模式下的文件上的文件上传,比如 <form method="POST" enctype="multipar/form-data" action="http://www.xxx.com/uploadImg"> <input type=file name=upload> <input type=submit name=nick value="go"> </form> 这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法: curl -F upload=@localfilename -F nick=go http://www.xxx.com/uploadImg
引用,某些资源需要经过一个网络地址跳转过去
curl -e http://www.xx.com/redict
上传一个资源到http服务器,最好使用PUT方法
curl -T uploadfile http://www.xxx.com curl --upload-file uploadfile http://www.xxx.com
参考
以上是关于curl简单入门的主要内容,如果未能解决你的问题,请参考以下文章
CentOS yum 命令出现 [Errno 14] curl#6 - "Couldn't resolve host ..." 的解决方法(代码片段