CURL 是最简单的发送 http 请求的方法之一,在 Linux 上用来模拟请求和测试 API 十分有用,这里记录一下 CURL 常见的使用方法。
发送 GET 请求
发送 GET 请求非常简单,只需要在命令后直接跟上 URL 就可以了。
1
| curl "http://www.baidu.com"
|
发送其他 HTTP 动词
除了 GET 以外,我们经常还会用到诸如 POST,PUT,DELETE 等动词,只要加上 -x
参数就可以了。
1
| curl -X POST "http://www.weibo.com/login"
|
添加请求参数
发送 GET 请求非常简单,只需要在 URL 后添加所需参数即可。
1
| curl "http://www.baidu.com?s=hello"
|
发送其他类型的请求可以用 --data
或者 -d
选项指定参数。
1
| curl -X "http://www.weibo.com/login" -d "name=master&password=123456"
|
发送带有文件需要使用 multipart/form-data 类型的 Content-Type。使用 CURL 发送文件也很简单,使用 –form 参数即可。其中文件类型需要加上@
,然后指定文件位置;字符串类型则直接使用字符串值即可。
1
| curl --form "headimg=@1.jpg" --form "user=master" "http://www.weibo.com/profile"
|
有时候我们想看到响应的头信息来进行调试。只需要添加 -I
参数即可。
1
| curl -I "http://www.baidu.com"
|
显示连接过程
使用 -V
参数可以得到连接的详细信息。包括端口连接和 HTTP 请求的全文。
1
| curl -v "https://www.baidu.com"
|
添加 Cookie
1
| curl --cookie "SESSIONID=2123112312" "http://user.qq.com"
|
1
| curl --header "Content-Type:application/json" "http://test.qq.com"
|
HTTP 认证
有些网站可能启用了 Http 基本认证,需要指定用户名和密码才可以访问。这时使用 --user
参数就可以了。
1
| curl --user "foo=bar" "http://auth.test.com"
|