- 浏览: 204903 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
sscsacdsadcsd:
nginx之类做下反代就好了...当然是一个意思其实我想的是有 ...
解决jQuery的AJAX跨域取xml问题 -
allstar2012:
为什么要对汉字进行双重编码呢?两次使用encodeURl()
【转载】解决js传汉字时候,url乱码的问题 -
qieyi28:
这要是放在strtus2中岂不是悲剧了
【转载】解决js传汉字时候,url乱码的问题 -
qq224:
[img][/img][size=xx-small][/siz ...
Struts2 分页代码 -
358713428:
阳光空气水 写道谢谢分享,一直想学习不错的例子。
颇受启发的一个jQuery Ajax例子~
Curl是一个很强大的http命令行工具,其功能十分强大。
1) 二话不说,先从这里开始吧!
$ curl http://www.yahoo.com
回车之后,www.yahoo.com 的html就稀里哗啦地显示在屏幕上了 ~
2) 嗯,要想把读过来页面存下来,是不是要这样呢?
$ curl http://www.yahoo.com > page.html
当然可以,但不用这么麻烦的!
用curl的内置option就好,存下http的结果,用这个option: -o
$ curl -o page.html http://www.yahoo.com
这样,你就可以看到屏幕上出现一个下载页面进度指示。等进展到100%,自然就 OK咯
3) 什么什么?!访问不到?肯定是你的proxy没有设定了。
使用curl的时候,用这个option可以指定http访问所使用的proxy服务器及其端口: -x
$ curl -x 123.45.67.89:1080 -o page.html http://www.yahoo.com
4) 访问有些网站的时候比较讨厌,他使用cookie来记录session信息。
像IE/NN这样的浏览器,当然可以轻易处理cookie信息,但我们的curl呢?.....
我们来学习这个option: -D <— 这个是把http的response里面的cookie信息存到一个特别的文件中去
$ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.yahoo.com
这样,当页面被存到page.html的同时,cookie信息也被存到了cookie0001.txt里面了
5)那么,下一次访问的时候,如何继续使用上次留下的cookie信息呢?要知道,很多网站都是靠监视你的cookie信息,来判断你是不是不按规矩访问他们的网站的。
这次我们使用这个option来把上次的cookie信息追加到http request里面去: -b
$ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.yahoo.com
这样,我们就可以几乎模拟所有的IE操作,去访问网页了!
6)稍微等等 ~我好像忘记什么了 ~
对了!是浏览器信息
有些讨厌的网站总要我们使用某些特定的浏览器去访问他们,有时候更过分的是,还要使用某些特定的版本 NND,哪里有时间为了它去找这些怪异的浏览器呢!?
好在curl给我们提供了一个有用的option,可以让我们随意指定自己这次访问所宣称的自己的浏览器信息: -A
$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.yahoo.com
这样,服务器端接到访问的要求,会认为你是一个运行在Windows 2000上的 IE6.0,嘿嘿嘿,其实也许你用的是苹果机呢!
而"Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686"则可以告诉对方你是一台 PC上跑着的Linux,用的是Netscape 4.73,呵呵呵
7)另外一个服务器端常用的限制方法,就是检查http访问的referer。比如你先访问首页,再访问里面所指定的下载页,这第二次访问的 referer地址就是第一次访问成功后的页面地址。这样,服务器端只要发现对下载页面某次访问的referer地址不是首页的地址,就可以断定那是个盗连了 ~
讨厌讨厌 ~我就是要盗连 ~!!
幸好curl给我们提供了设定referer的option: -e
$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.yahoo.com" -o page.html -D cookie0001.txt http://www.yahoo.com
这样,就可以骗对方的服务器,你是从mail.yahoo.com点击某个链接过来的了,呵呵呵
8)写着写着发现漏掉什么重要的东西了!——- 利用curl 下载文件
刚才讲过了,下载页面到一个文件里,可以使用 -o ,下载文件也是一样。比如,
$ curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG
这里教大家一个新的option: -O 大写的O,这么用:
$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG
这样,就可以按照服务器上的文件名,自动存在本地了!
再来一个更好用的。
如果screen1.JPG以外还有screen2.JPG、screen3.JPG、....、screen10.JPG需要下载,难不成还要让我们写一个script来完成这些操作?
不干!
在curl里面,这么写就可以了:
$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG
呵呵呵,厉害吧?! ~
9)再来,我们继续讲解下载!
$ curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG
这样产生的下载,就是
~zzh/001.JPG
~zzh/002.JPG
...
~zzh/201.JPG
~nick/001.JPG
~nick/002.JPG
...
~nick/201.JPG
够方便的了吧?哈哈哈
咦?高兴得太早了。
由于zzh/nick下的文件名都是001,002...,201,下载下来的文件重名,后面的把前面的文件都给覆盖掉了 ~
没关系,我们还有更狠的!
$ curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG
—这是.....自定义文件名的下载? —对头,呵呵!
这样,自定义出来下载下来的文件名,就变成了这样:原来: ~zzh/001.JPG —-> 下载后: 001-zzh.JPG 原来: ~nick/001.JPG —-> 下载后: 001-nick.JPG
这样一来,就不怕文件重名啦,呵呵
9)继续讲下载
我们平时在windows平台上,flashget这样的工具可以帮我们分块并行下载,还可以断线续传。curl在这些方面也不输给谁,嘿嘿
比如我们下载screen1.JPG中,突然掉线了,我们就可以这样开始续传
$ curl -c -O http://cgi2.tky.3wb.ne.jp/~zzh/screen1.JPG
当然,你不要拿个flashget下载了一半的文件来糊弄我 别的下载软件的半截文件可不一定能用哦 ~
分块下载,我们使用这个option就可以了: -r
举例说明
比如我们有一个http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 要下载(赵老师的电话朗诵 )我们就可以用这样的命令:
$ curl -r 0-10240 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
$ curl -r 10241-20480 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
$ curl -r 20481-40960 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
$ curl -r 40961- -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3
这样就可以分块下载啦。不过你需要自己把这些破碎的文件合并起来如果你用UNIX或苹果,用 cat zhao.part* > zhao.mp3就可以如果用的是Windows,用copy /b 来解决吧,呵呵
上面讲的都是http协议的下载,其实ftp也一样可以用。用法嘛,
$ curl -u name:passwd ftp://ip:port/path/file
或者大家熟悉的
$ curl ftp://name:passwd@ip:port/path/file
10) 说完了下载,接下来自然该讲上传咯上传的option是 -T
比如我们向ftp传一个文件:
$ curl -T localfile -u name:passwd ftp://upload_site:port/path/
当然,向http服务器上传文件也可以比如
$ curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi
注意,这时候,使用的协议是HTTP的PUT method
刚才说到PUT,嘿嘿,自然让老服想起来了其他几种methos还没讲呢! GET和POST都不能忘哦。
http提交一个表单,比较常用的是POST模式和GET模式
GET模式什么option都不用,只需要把变量写在url里面就可以了比如:
$ curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345
而POST模式的option则是 -d
比如,
$ curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi
就相当于向这个站点发出一次登陆申请 ~
到底该用GET模式还是POST模式,要看对面服务器的程序设定。
一点需要注意的是,POST模式下的文件上的文件上传,比如
<form method="POST" enctype="multipar/form-data" action="http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi">
<input type=file name=upload>
<input type=submit name=nick value="go">
</form>
这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法:
$ curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi
罗罗嗦嗦讲了这么多,其实curl还有很多很多技巧和用法比如 https的时候使用本地证书,就可以这样
$ curl -E localcert.pem https://remote_server
再比如,你还可以用curl通过dict协议去查字典 ~
$ curl dict://dict.org/d:computer
发表评论
-
12个国外的免费VPN代理
2011-02-09 00:27 1657VPN(Virtual PrivateNetwork)虚拟专用 ... -
Java 加载Properties文件的六种方式
2011-02-08 22:31 9681。使用java.util.Properties类的load( ... -
【转载】2010年国内开源状况
2011-01-25 09:35 11032010 或许可以称之为中国互联网企业回馈开源领域的试水之年。 ... -
MySQL中Text, MeduimText, LongText在Hibernate中的设置
2010-12-01 15:59 6180在Hibernate的配置中,我目前是采用Annotation ... -
Axis2 根据wsdl制作客户端程序
2010-11-11 00:24 2399package test; import org.a ... -
让BN全部头像可以使用
2010-10-20 19:57 963http://hi.baidu.com/kabian/blog ... -
BN战绩房和统计信息
2010-10-20 19:55 946简单介绍参考:http://hi.baidu.com/lida ... -
BN搭建全过程
2010-10-20 00:19 11161. 官网下载 http://pvpgn.berlios.de ... -
Ubuntu下配置出现error: Cannot find MySQL header files 的解决
2010-10-19 23:25 1097apt-get install libmysqlclient1 ... -
JSTL中if/else使用
2010-09-22 23:49 6044<c:forEach var="i&quo ... -
org.apache.lucene.analysis.TokenStream.incrementToken()Z 错误
2010-08-26 16:26 3951org.apache.lucene.analysis.Toke ... -
msn 80048820 错误,最佳解决办法
2010-08-24 10:04 1279在Internet选项的高级里 清除“检查服务器证书吊销”复 ... -
搭建svn
2010-08-16 18:47 1504环境 ubuntu 10.04 1. sudo apt-ge ... -
防止sshd暴力破解密码工具
2010-07-29 15:56 1171今天逛别人javaeyeblog的时候无意间发现的工具 de ... -
Velocity 解析多层Map
2010-07-15 18:11 2234针对Map<String,Map<String,S ... -
安装单机模式hadoop的流程
2010-07-12 23:33 2424安装环境: Ubuntu 9.10 hadoop 0.20.2 ... -
Velocity 遍历Map类型,List类型
2010-07-06 14:50 2952折腾个velocity的显示问题折腾了一天.. 一.遍历个m ... -
Tokyo Tyrant 简单使用
2010-06-25 16:39 1315(1)、写数据,将数据“value”写入到“key”中: cu ... -
扩大linux文件 描述符
2010-06-25 16:33 759如果大量的客户端访问ttserver,请确保文件描述符够用。 ... -
安装TT
2010-06-25 11:36 1088先装tc 1. ./configure --prefix=/u ...
相关推荐
总结,curl-7.33.0-win64-.zip是一个专为Windows 64位系统设计的curl工具包,包含了可执行文件curl.exe和使用指南readme.txt。用户可以通过调用curl.exe执行各种网络任务,同时借助readme.txt了解使用细节和注意事项...
curl-8.4.0_3-win32-mingw.zip curl-8.4.0_3-win64-mingw.zip curl-8.4.0_3-win64a-mingw.zip
curl-config 配置选项的使用 curl-config 是一个命令行工具,用于显示关于 curl 和 libcurl 安装的信息。下面是对 curl-config 的详细介绍: curl-config 的使用 curl-config 可以使用多种选项来显示不同的信息。...
`curl-7.33.0-win64-ssl-sspi` 是一个针对Windows 64位操作系统的 curl 工具的版本,它包含了 SSL 和 SSPI 的支持。curl 是一个广泛使用的开源命令行工具,用于在命令行界面中传输数据,常用于HTTP、HTTPS、FTP、...
《curl-7.46.0-win64.zip:深入理解curl命令行工具在Windows环境下的应用》 curl,一个强大的命令行工具,用于传输数据,支持多种协议,包括HTTP、HTTPS、FTP、FTPS等。它在软件开发、网络调试、数据抓取等领域有着...
此外,压缩包中还有一个名为"1.ppt"的文件,这可能是相关的教程或介绍材料,可能是关于如何使用curl-7.46.0-win64的演示文稿。PPT文件通常包含了图片、文字和可能的交互元素,帮助用户更好地理解和掌握curl的使用...
1. **下载与解压**:下载“curl-7.61.0-win64-mingw.rar”压缩包,将其解压至任意位置,例如C:\curl-7.61.0-win64-mingw。 2. **添加环境变量**:打开系统属性,找到“高级”选项卡,点击“环境变量”。在系统变量...
本篇文章将详细介绍`curl`以及提供的功能,特别是针对`curl-7.61-64位编译版本`在Windows环境下的使用。 1. **curl工具介绍** `curl`由Daniel Stenberg开发,是一个开源项目,提供跨平台的兼容性。其主要功能包括...
curl-unix-socket, 通过UNIX套接字运行HTTP请求 在UNIX套接字上的HTTP请求我想尝试 Docker API而不在TCP套接字上绑定它。 Curl在UNIX套接字上不工作,因此我已经完成了以下操作:插件生成go get github....
**Windows下的curl工具:curl-7.71.1-win64-mingw** curl是一个强大的命令行工具,用于在不同的操作系统平台上进行文件传输,包括Windows。它的全名是Client URL Library,支持多种协议,如HTTP、HTTPS、FTP、FTPS...
curl-8.4.0.tar.gz curl-8.4.0.zip
perl-WWW-Curl4.17版本rpm包
curl-curl-7_47_1.zip
官方最新版本 安装时请使用默认设置,安装完成后可以打开一个命令行窗口,输入 curl,如果提示 curl: try 'curl --help' or 'curl --manual' for more information 就表示安装成功了。
curl-8.9.1_1-win64-mingw 是一个强大且灵活的命令行工具,主要用于从命令行或脚本中传输数据。该工具支持多种协议,包括HTTP、HTTPS、FTP、FTPS、SFTP、SMTP、IMAP等,广泛应用于开发、测试和系统管理等领域。这个...
CURL-with-SSL-for-Windows是一个强大且安全的网络工具,适用于Windows用户进行各种网络操作。了解并掌握CURL的使用,对于开发者和系统管理员来说,无论是进行日常的网络测试还是处理紧急问题,都能大大提高工作效率...
如果是 Windows 系统,下载 window 版本(curl-7.33.0-win64-ssl-sspi.zip解压后的curl.exe文件,添加到环境变量中,以便在其他路径中通过cmd窗口使用curl命令): 如果你安装了 git shell,也自带了 curl。
用来替换WAMP server下的php_curl.dll,解决加载curl报错或无法加载问题。下载解压后,覆盖wamp\bin\php\php5.4.3\ext目录下对应文件,重启apache即可。如果不行请检查: 是否已修改php.ini文件去掉extension=...
使用curl-7.17.1-win32-ssl的过程非常简单。首先,你需要将压缩包解压到本地磁盘的任意位置。解压后,你可以通过打开命令提示符(cmd)来访问这个工具。在命令提示符中,你需要导航到curl的解压目录,这通常可以通过...