cURL是作为命令行应用程序开发的,它帮助您使用URL语法传输文件并将其保存在计算机上。该应用程序支持多种协议,如pop3、pop3s、dict、file、ftp、http、https、imap、ftps、ldaps、gopher、telnet、tftp和scp。就证书而言,支持http-post、http-put、ssl、基于http表单的上传、用户+密码验证、cookie、代理、代理隧道和文件传输恢复。如果所有这些都不足以满足您的需求,那么您应该知道它是一个开源应用程序,这意味着您可以完全自由地增强其功能或将其包含到第三方应用程序中。运行时,它会显示一个进度表,通知您正在传输的数据量以及完成前的估计时间。这个进度表可以自动显示在终端上。使用此开源工具,可以使用URL语法传输文件,这得益于对大量协议和证书的支持。
libcurl是一个易于使用的客户端URL传输库,而curl使用URL语法接收和发送文件。
libcurl可以不受长度限制地处理完整的URL语法,并允许您更改可接受的最大下载时间和速度。
libcurl还能够根据主机名猜测协议,并提供标准代理环境变量支持。
-A:随意指定自己这次访问所宣称的自己的浏览器信息
-b/--cookiecookie字符串或文件读取位置,使用option来把上次的cookie信息追加到http request里面去。
-c/--cookie-jar操作结束后把cookie写入到这个文件中
-C/--continue-at 断点续转
-d/--data HTTP POST方式传送数据
-D/--dump-header把header信息写入到该文件中
-F/--form模拟http表单提交数据
-v/--verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。
-m/--max-time指定处理的最大时长
-H/--header指定请求头参数
-s/--slient 减少输出的信息,比如进度
--connect-timeout指定尝试连接的最大时长
-x/--proxy指定代理服务器地址和端口,端口默认为1080
-T/--upload-file指定上传文件路径
-o/--output指定输出文件名称
--retry指定重试次数
-e/--referer指定引用地址
-I/--head 仅返回头部信息,使用HEAD请求
-u/--user设置服务器的用户和密码
-O:按照服务器上的文件名,自动存在本地
-r/--range检索来自HTTP/1.1或FTP服务器字节范围
-T/--upload-file上传文件
使用说明
应用程序生成两个独立的项目:libcurl和curl。libcurl是一个易于使用的客户端URL传输库,而curl使用URL语法接收和发送文件。
libcurl可以不受长度限制地处理完整的URL语法,并允许您更改可接受的最大下载时间和速度。
libcurl还能够根据主机名猜测协议,并提供标准代理环境变量支持。
常用参数
curl命令参数很多,这里只列出我曾经用过、特别是在shell脚本中用到过的那些。-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
∨ 展开