使用cURL的记录

发送一个GET请求

curl https://blog.iwangtao.com

加入header信息,使用-H选项。

curl -H "Content-Type: application/json" https://blog.iwangtao.com

发请一个POST JSON数据,使用-d选项。

curl --header "Content-Type: application/json" \
    --header "authorization: IhdmM"  \
  --request POST \
  --data '{"userName":"John","password":"123456"}' \
  http://localhost:8080/api/login

显示连接的所有详细信息,方便调试。添加-v(--verbose)选项。

curl https://blog.iwangtao.com -v

返回数据自动换一行,与输入命令的区域分开,可以在命令后面添加-w

curl https://blog.iwangtao.com -w  

显示curl执行的时长,可以使用-w选项,配合%{time_total}
一些常用变量:
%{url_effective}:表示请求的实际URL。
%{http_code}:表示HTTP响应代码。
%{time_total}:表示请求的总执行时间。
%{time_starttransfer}:表示从请求开始到传输开始的时间。
%{size_download}:表示已下载的字节数。
%{speed_download}:表示平均下载速度。

curl https://blog.iwangtao.com -w "执行时长: %{time_total} 秒"

cURL下载文件

curl https://c.td5s.co/avatar/03.jpg -o avatar-03.jpg

cURL下载文件添加cookie支持

curl --cookie "token=123456" https://c.td5s.co/avatar/03.jpg -o avatar-03.jpg

cURL上传文件
使用multipart/form-data的方式上传,换成html的写法就是form里添加一个类型为file的input。在cURL里,-F选项就是添加form数据。
我添加上传一个名为file的文件,-F "file=@avatar02.jpg",@的后面是一个文件的绝对或者相对的路径。

curl -F "file=@/Users/wangtao/avatar/03.png" https://blog.iwangtao.com/api/upload

输出格式化后的JSON数据。
添加-s选项,启用静默模式。只返回内容,不返回报错。
利用python3自带的JSON模块格式化输出内容

curl https://blog.iwangtao.com/api/article -s | python3 -c "import sys, json; print(json.dumps(json.load(sys.stdin), ensure_ascii=False, indent=4))"