cURL 常见用法

发布于 2021-03-14 16:14:26 字数 2542 浏览 1394 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

遂心如意

文章 0 评论 0

5513090242

文章 0 评论 0

巷雨优美回忆

文章 0 评论 0

junpengz2000

文章 0 评论 0

13郎

文章 0 评论 0

qq_xU4RDg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文