curl, 用于在命令行或脚本中进行数据传输的工具。其主要功能通过libcurl进行实现。
curl自身已集成大量常用功能,例如:网络代理、身份认证、FTP上传、HTTP POST、SSL、cookie等,文件续传 等。且支持目前主流的大部分协议:DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP。
语法
支持功能
基础用法
curl ftp://ftp.test/README
设置密码
curl -u name:passwd ftp://machine.domain:port/full/path/to/file
curl -u name:passwd http://machine.domain/full/path/to/file
打印请求和响应的相关信息
发送HEAD请求
发送POST请求
curl -v --data-urlencode "name=你不知道我是谁" --data-urlencode "home=zhihu.com/people/w-w-l" zhihu.com
curl -v --form "name=你不知道我是谁" --form "home=zhihu.com/people/w-w-l" zhihu.com
curl -v --form "name=你不知道我是谁" --form "file=@~/tmp/test.txt" zhihu.com
设置请求头
curl -v -H X-HOME-PAGE:zhihu.com/people/w-w-l
响应跳转
自动识别3XX状态码自动发起后续请求。
以知乎为例,通过curl访问//http://www.zhihu.com的时候,服务器检查无身份认证信息,从而返回响应的状态码为302,要求客户端跳转到登录页//http://www.zhihu.com/signin。
通过-L参数,以上命令实际发出两次请求,一次为//http://www.zhihu.com,第二次为//http://www.zhihu.com/signin