使用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))"