cUrl使用指南

curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。

它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。

本文介绍它的主要命令行参数,作为日常的参考,方便查阅。内容主要翻译自《curl cookbook》。

不带有任何参数时,curl 就是发出 GET 请求

1
$ curl https://www.example.com

上面命令向www.example.com发出 GET 请求,服务器返回的内容会在命令行输出。

-X参数指定 HTTP 请求的方法

1
$ curl -X POST https://www.example.com

-d参数用于发送 POST 请求的数据体

1
2
3
$ curl -d'login=emma&password=123'-X POST https://google.com/login
# 或者
$ curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login

使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST。

-d参数可以读取本地文本文件的数据,向服务器发送

1
$ curl -d '@data.txt' https://google.com/login

-H参数添加 HTTP 请求的标头

1
$ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login

上面命令添加 HTTP 请求的标头是Content-Type: application/json,然后用-d参数发送 JSON 数据。

-k参数指定跳过 SSL 检测

1
$ curl -k https://www.example.com

–limit-rate用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境

1
$ curl --limit-rate 200k https://google.com

上面命令将带宽限制在每秒 200K 字节。

-u参数用来设置服务器认证的用户名和密码

1
$ curl -u 'bob:12345' https://google.com/login

上面命令设置用户名为bob,密码为12345,然后将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1。

完整的post json示例

1
curl -X POST http://domain.com -H 'Content-Type: application/json' -d '{"authentication": {"dspId": "1111","token": "xxxxxx"},"advertiserIds":["22"]}'