Curl命令使用和详解

curl 命令模拟 POST/GET 请求

curl 语法:curl [options…] # curl (选项) (参数)

使用curl发送POST请求: (推荐)

参数直接在header里面,如需将输出指定到文件可以通过重定向进行操作。

# curl -H "Content-Type:application/json" -X POST -d 'json data' URL
# curl -H "Content-Type:application/json" -X POST -d '{"user": "admin", "passwd":"12345678"}' https://blogs.jinchenghe.top/login

其他 HTTP 方法通过 -X 参数指定即可

# curl -X DELETE url
# curl -X PUT --data 'key=value' url

下载脚本并执行

# curl -sSL http://to.sh | bash

查看 Header

使用 -i 或者 –include 参数查看返回 Header

# curl -i google.com

使用 -i 参数,页面相应头 header 和页面相应 body 一起返回,如果只想查看 header,可以使用 -I 或者 –head

断点续传

通过使用-C选项可对大文件使用断点续传功能

文件上传

# curl -T file.txt url

HTTPS 支持

# curl -E mycert.pem https://url

添加请求头

# curl -H ‘Content-Type:application/json' -H 'Authorization: bearer valid_token' URL

Cookie

-c参数保存请求返回 Cookie,本地存储文件

# curl -u ftpuser:ftppassword -T file.txt ftp://ftp.server
# curl -u ftpuser:ftppassword -T "{file1, file2}" ftp://ftp.server

Curl总结:

curl的常见用法也就是下载文件,查看header,还有在命令行下发送POST或GET请求。

外延 wget

wget 支持 HTTP,HTTPS 和 FTP 协议,可以使用 HTTP 代理。

# wget https://www.google.com

外延 axel

Linux下高速下载工具,支持多线程下载、断点续传。
使用 10 个线程同时下载文件。

# axel -n 10 url

外延 mwget外延 mwget

多线程版本 wget,同时使用 5 个线程下载

# mwget -n 5 url