文章目录
前言
Curl是一个命令行工具和库,用于用url传输数据;支持HTTP、HTTPS、FTP、LDAP、DICT、TELNET、SFTP、SCP等多种传输协议,curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传等等。
curl可以分为命令行工具 和 libcurl库两部分,curl工具可以很好地帮助开发诊断、在终端设备中集成命令行实现数据传输功能;libcurl库是一个客户端URL传输库,提供了很多接口函数,可以用于相关开发。
一、Curl命令
curl命令工具功能十分强大,命令参数十分多,可以通过man curl查看支持的所有option选项。
介绍常用curl命令、及基本使用方法的大佬博客,十分全面,参考:
https://www.cnblogs.com/softidea/p/6183660.html
二、通过curl命令实现上传下载
1.下载
相关curl参数:
(1) 查看HTTP头信息
-I 打印出HTTP头部信息
-u 设置服务器的用户和密码,完成HTTP或者FTP的认证
--anyauth 使用“任何”身份验证方法
-f 连接失败时不显示http错误
> 输出重定向
curl -I -u "user:pass" --anyauth -f http://test.com/file.txt > /temp/header.txt
(2)下载文件
-o 把输出写到文件中
--max-filesize 设置最大下载的文件总量
--max-time 设置最大传输时间
--progress 显示下载进度
curl -o "file.txt" "http://test.com/file.txt" --max-filesize 1048576 --max-time 3
下载文件的一部分,可以通过--range参数实现,下载范围内字节数的文件内容
curl -o "file.txt" "http://test.com/file.txt" --range 0-1048575
--max-time 设置超时时间
2.上传
--upload-file 上传文件
curl http://test.com --upload-file file.txt
3. 通过curl发送HTTP GET/POST请求
-H 添加一个http header
-X 指定与服务器通信使用的请求方法
curl http://test.com/api/cmdtest -H 'Accept: application/json' -X GET
-d 使用HTTP POST方式发送“key/value”数据
curl http://test.com -H 'Accept: application/json' \
-d '{"key":"value"}'
总结
记录了curl命令工具的常用使用方法,包括上传、下载,HTTP的GET POST请求。