wincurl:一款基于HTTP协议的轻量级web资源抓取和上传工具
编写web程序经常要进行接口调测,通常我们会使用curl或者postman等工具,通过这些工具可以方便的发送GET或POST请求来验证接口的正确与否。 对于复杂的接口业务,我们可以通过这些工具构造post data、query string、以及request header来完成这些接口的验证,从而大大提升我们的工作效率。 有时我们也需要抓取和分析web服务器返回的原始数据,比如按照chunked(Transfer-Encoding)方式分块传输的数据,或者 Content-Encoding为gzip的数据,或者是两者结合的chunked+gzip数据。因此我在工作之余编写一个在windows平台下基于命令行的高仿curl工具。
【下载地址】
wincurl:http://softlee.cn/wincurl.zip
【wincurl特点】
1、小巧简洁只有一个可执行文件; 2、支持SSL协议,内部集成openssl库; 3、具有丰富且灵活的配置参数; 4、具备curl在HTTP协议上的大部分功能; 5、可输出原始响应数据,比如chunked或压缩数据(gzip、deflate);
【wincurl的使用】
wincurl是一个命令行工具,使用比较简单,下面以www.163.com网站为例进行介绍。
1、抓取网页
wincurl http://www.163.com 如果URL中没有指定http或https,则默认是http协议。如果是https网站,则输入: wincurl https://www.163.com 或者 wincurl www.163.com -ssl 或者 wincurl -ssl www.163.com
2、下载网页到指定文件中
wincurl https://www.163.com -o 163.html 此时,163网站的主页会保存到163.html中,“-o”参数会指明下载的文件名称,如果不是全路径,则会默认下载到当前目录。 或者更加简洁的使用大写“-O”,该参数不用指明文件名称,使用“-O”时会使用url中的资源名称作为文件名。
3、上传文件
wincurl -u c:/1.jpg https://www.xxx.com/upload.do 这里假设upload.do接口支持上传文件命令。 “-u”参数会指定本地上传文件的路径。
4、POST数据
wincurl http://www.xxx.com/command.do -d "user=name&pwd=123456" “-d”参数会指定需要POST的数据。 如果POST数据很大,或者是二进制数据,可以将数据放入文件中并用“-file”参数来指定,如下: wincurl http://www.xxx.com/command.do -d "c:/post.data" -file 此时,post数据在文件post.data中。
5、自定义请求头
wincurl https://www.xxx.com/xxx.do -h "User-Agent: wincurl" “-h”参数会添加指定的请求头。 请求头也可放入配置好的文件中,通过“-file”参数指定来添加,如下: wincurl http://www.xxx.com/command.do -d "c:/head.txt" -file 此时,请求头数据在head.txt文件中。
6、批量下载资源
如果URL资源的名称有数字编号,可通过[]来指定下载的区间,如下: wincurl http://softlee.cn:8888/batch/[1-5].jpg -O 此时会把web服务器上的1.jpg、2.jpg...5.jpg下载到当前目录下。 “-p”参数可指定批量下载的保存路径,如下: wincurl http://softlee.cn:8888/batch/[1-5].jpg -O -p "c:/temp" 此时文件将下载到c盘的temp目录下。
7、显示下载或上传进度
wincurl https://www.163.com -O -progress “-progress”会显示下载进度,只有“-o”、“-O”或“-u”存在时,该值有效。 因为此时HTTP响应数据是输出到文件(或上传到服务器)中,屏幕上看不到进度,如果是输出到控制台,则无需显示进度。 默认Web响应数据是输出到控制台(没有“-o”或“-O”时)。
8、按照指定步长在控制台显示数据
wincurl https://www.163.com -step 1024 “-step”参数会指定响应数据每次显示多少,缺省为1024字节,用户按任意键后可继续显示。
9、输出原始响应数据到文件中
wincurl https://www.163.com -O -origin “-origin”参数会将web服务器返回的原始数据输出到文件中,这些数据可能是chunked或被压缩的,或者是chunked+压缩的
10、输出压缩数据到文件中
wincurl https://www.163.com -O -compress 如果响应数据的Conent-Encoding是压缩数据,通过“-compress”可将其输出。
11、显示帮助信息
如果wincurl命令不带任何参数,则显示帮助信息,或者使用参数“-help”或“-?”
wincurl -help wincurl -? wincurl配置参数分为两大类,一类是带值参数,比如-o,-d等,一类是不带值参数比如-ssl、-O等,如下所示。
注意:如果命令行参数值中有空格或&,请使用双引号将参数包起来使用,比如post数据中的&或文件路径中的空格。
最后,感谢您的使用。
- 基于WebImage的图片上传工具类
- 一款基于HTML5的Web 3D开发工具
- 推荐一款基于web的Unix系统管理工具webmin
- 一款简单的基于Web的投票工具(PHP+SQLite 实现)
- mxGraph是一款基于web的绘制流程图的javascript库工具
- [持续开源]基于nodejs+ligerui的一款mongodb web 端查询工具(MongoStudio)
- 推荐一款国产优秀的基于 AI 的 Web 自动化测试工具——kylinTOP 测试与监控平台
- 基于HTTP协议的轻量级开源简单队列服务:HTTPSQS
- 最简单的基于Tomcat的Web应用程序-没有Servlet,只访问静态资源(jsp,html,gif等)
- 一款用于绘制状态机转换图和流程图的web在线绘图工具
- 基于PHP开发WEB程序之工具推荐
- 基于PHP开发WEB程序之工具推荐
- 基于WEB应用开发的java程序员必备工具
- 基于Webupload的文件上传 js封装 V0.1
- Devops关键工具及技术(六)—基于Pipeline的Web自动化测试[三](Web自动化测试的流水线集成)
- 使用IDEA工具创建基于maven管理的Javaweb项目
- 基于HTTP协议的轻量级开源简单队列服务:HTTPSQS
- Windows Azure真实案例:GXS --开发者提升了灵活性,使用基于Web的供应链管理工具降低花费
- 推荐一款web页面草图快速设计工具
- 一款基于浏览器的云技术在线Web开发IDE—CodeRun Studio