什么是curl
curl是一个非常实用的、用来与服务器之间传输数据的工具;
支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;
curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传...。
常用的curl命令
- 查看所有curl命令:man curl或者curl -h
- 请求头: H,A,e
- 响应头: I,i,D
- cookie: b,c,j
- 传输: F(POST),G(GET),T(PUT),X
- 输出: o,O,w
- 断点续传:r
- 调试:v,--trace,--trace-ascii,--trace-time
GET请求
curl URL
curl URL?name=TT&age=23
curl -o response.tex URL
// -o 保存响应到文件中
POST请求
curl -x POST URL
curl -d 'name=TT&age=23' -x POST URL
curl -d 'name=TT' -d 'age=23' URL
// 当使用参数 -d ,curl自动携带 Content-Type:application/x-www-form-urlencoded
// 当使用参数 -d ,-x POST 可以省略,因为会隐式发起 post 请求
JSON请求
curl -d '{"name": "TT", "age": "23"}' -H 'Content-Type: application/json' URL
// 必须指定请求头为 Content-Type: application/json
上传文件
curl -d '@blog.jar' URL
// @是标志文件而非简单字符串。
Multipart Data 或者上传二进制文件
curl -F 'file=@image.png' URL
// 用 -F 参数,强制 curl 发出多表单数据的 POST 请求
// 自动携带 -H “Content-Type: multipart/form-data”
// 当需要上传图像或其他二进制文件时,发送多表单数据非常有用。
上传二进制文件并设置其 MIME 类型
curl -F 'file=@image.png;type:image/png' URL
curl -F 'file=@image.png;type:image/png;filename=target.png' URL
// 如果没有指定类型,curl 会将其设置为 application/octet-stream
原文地址:TT的博客《Linux curl命令》