curl是一种命令行工具,作用是发出网络请求,然后获取数据,显示在标准输出stdout
上面。最近学习 oauth2
经常需要用到此命令进行测试,所以这里简单记录下。
基本命令
获取网页源码
curl example.com
curl -o example.html example.com # 保存网页
curl -L example.com # 自动跳转
显示头信息
curl -i www.baidu.com # http response跟网页
curl -I www.baidu.com # 只显示http response
显示通信过程
curl -v www.baidu.com
curl --trace output.txt www.baidu.com
curl --trace-ascii output.txt www.baidu.com
表单信息
GET方法直接拼接在网址后面,POST方法必须数据跟网址分开,
用到-data
参数。
如果你的数据没有经过表单编码,还可以使用--data-urlencode
编码
curl example.com/form?data=xxx
curl -X POST --data "data=xxx" example.com/form
curl -X POST --data-urlencode "data=April 1" example.com/form
HTTP动词
默认的HTTP动词是GET,使用 -X
参数可以支持其他动词。
curl -X DELETE example.com/1
curl -X POST --data "data=xxx" example.com/form
文件上传
比如文件上传表单如下
<form method="POST" enctype='multipart/form-data' action="upload.cgi">
<input type=file name=upload>
<input type=submit name=press value="OK">
</form>
curl --form upload=@localfilename --form press=OK[URL]
Referer字段
表示从哪里跳转过来
curl --referer http://example1.com http://example2.com
User Agent字段
表示客户端设备信息
curl --user-aget "[User Agent]" [URL]
Cookie
curl --cokkie "name=xxx" example.com
curl -c cookies http://example.com # 保存网址的cookie信息到指定文件cookies中
curl -b cookies http://example.com # 使用cookies这个文件作为cookie信息访问网址
头部信息
curl --header "Content-Type:applicaion/json" http://example.com
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiand0cmVzb3VjZWlkIl0sInVzZXJfbmFtZSI6InJvb3QiLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNTY1NzA2NzQ3LCJhdXRob3JpdGllcyI6WyJST0xFX0FETUlOIl0sImp0aSI6IjEyNWQzYTJkLTQ1ODktNDc4YS04ZTRiLTdiN2UwZDM5MGYyZCIsImNsaWVudF9pZCI6Imp3dGNsaWVudGlkIn0.AHudCbS_rctS0YQuBSADPIPnMGm9a-2hguR_I0uQ19o" "localhost:8080/user/"
curl -X GET "http://localhost:8080/api/sys/user?page=0&size=10&id=1161156488191410178&sort=-createTime" -H "accept: */*" -H "Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJ3amMiLCJleHAiOjE1Njk4MjIyMTUsImlhdCI6MTU2OTczNTgxNX0.ORQOUeTeNORtwT6MyLy8SaOAwOmtUefyDk2korgtJPg" | python -m json.tool
HTTP认证
有些网域需要HTTP认证,
curl --user clientId:clientSecret example.com
curl -u name:password example.com
Buye me a cup of coffee or ice coke.
- Post link: https://jianchengwang.info/2020/10/27/linux/sh/curl/
- Copyright Notice: All articles in this blog are licensed under unless stating additionally.
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues