cURL 常见用法
cURL 是一个常用的linux命令行工具,它可以模仿浏览器发送各种HTTP请求。最简单的用法:
$ curl http://127.0.0.1:80
或
$ curl http://qq.com
HTTP 命令(-X)
$ curl -X DELETE http://某域名.com/某资源id
表示删除某个资源
HTTP 表单数据(-d)
普通表单:
$ curl -X POST http://某域名.com -d 'field1=value1&field2=value2'
AJAX+json格式:
$ curl -X POST http://127.0.0.1:5984/demo \
-d '{"company": "Example, Inc."}'
上例是向couchdb的demo数据库中添加文档的例子。
HTTP 头(-H)
$ curl -H 'Content-Type: application/json' \
-X POST http://127.0.0.1:5984/demo \
-d '{"company": "Example, Inc."}'
在http头中指定了POST数据是json格式的。
操作 cookie(-c -b)
$ curl -c cookiec.txt http://www.linux.com
从服务器返回的cookie数据被保存到了cookiec.txt文件中。
$ curl -b cookiec.txt http://www.linux.com
把cookiec.txt文件中数据当cookie发给服务器。-c和-b参数相结合就模拟了浏览器的cookie功能。
直接在命令行上模拟cookie的写法:
curl -vX PUT http://127.0.0.1:5984/mydatabase \
--cookie "AuthSession=YW5uYTo1Nzg2MzU4RTqigPm9-aUOs2Q7qaBZcTRvvOUCHg;name=ddd"
上传文件
以上传couchdb的附件为例演示curl上传文件的功能:
curl -vX PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg?rev=2-2739352689 \
--data-binary @artwork.jpg -H "Content-Type:image/jpg"
-T 上传文件
使用curl -T参数上传文件:
curl -T '/etc/hosts' 'http://webdav.imaicloud.com/webb3/'
使用justniffer监控enp0s3网卡:
justniffer -i enp0s3 -r
可以看到curl -T参数发送的实际http请求如下:
PUT /webb3/hosts HTTP/1.1
Host: webdav.imaicloud.com
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 235
Expect: 100-continue
HTTP/1.1 100 Continue
127.0.0.1 block2 block2
127.0.0.1 localhost
HTTP/1.1 201 Created
Server: nginx/1.9.8
Date: Thu, 05 Jan 2017 07:54:42 GMT
Content-Length: 0
Location: http://webdav.imaicloud.com/webb3/hosts
Connection: keep-alive
其中/etc/hosts文件的内容是:
127.0.0.1 block2 block2
127.0.0.1 localhost
访问https地址
curl --cacert /etc/ipa/ca.crt https://c7007.ambari.apache.org/KdcProxy
json格式化显示
安装 jq
apt-get install jq
使用 jq 格式化显示 json
cat tt.json | jq .
如果 curl 输出是 json,则:
curl xxxxx | jq .
与 jq 类似软件还有 jshon。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论