您的位置:首页 > 理论基础 > 计算机网络

wincurl:一款基于HTTP协议的轻量级web资源抓取和上传工具

2022-03-04 15:46 886 查看

编写web程序经常要进行接口调测,通常我们会使用curl或者postman等工具,通过这些工具可以方便的发送GET或POST请求来验证接口的正确与否。 对于复杂的接口业务,我们可以通过这些工具构造post data、query string、以及request header来完成这些接口的验证,从而大大提升我们的工作效率。 有时我们也需要抓取和分析web服务器返回的原始数据,比如按照chunked(Transfer-Encoding)方式分块传输的数据,或者 Content-Encoding为gzip的数据,或者是两者结合的chunked+gzip数据。因此我在工作之余编写一个在windows平台下基于命令行的高仿curl工具。

【下载地址】

wincurlhttp://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数据中的&或文件路径中的空格。

最后,感谢您的使用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: