cURL 和 httpie 常用命令速查表
cURL 是一个历史悠久、功能强大的发送和接受数据的工具,而 httpie 是一个更加现代化的 HTTP 客户端,提供了更加人性化的命令行体验。本文记录了 cURL 和 httpie 的常用命令和选项,带您快速上手。
cURL
curl
取自 Client for URLs,是一个命令行工具,支持以包括 HTTP、HTTPS、FTP、SCP 在内的超多种协议进行数据传输。
最简单的用法如下,它将向指定 URL
发送一个 GET 请求,并将结果输出到标准输出(stdout
):
curl URL
使用 -v
或 --verbose
选项可以显示请求和响应的详细信息:
curl -v URL
使用 -V
或 --version
选项可以显示 cURL 的版本信息:
curl -V
保存为文件
使用 -o
或 --output
选项并指定文件名,可以将结果保存到文件:
curl -o FILENAME URL
如果希望使用服务器返回的文件名,可以使用 -O
或 --remote-name
选项:
curl -O URL
请求方法、请求头与请求体
使用 -X
或 --request
选项指定请求方法,并使用 -d
或 --data
选项指定请求体:
curl -X POST -d 'key1=value1&key2=value2' URL
在使用 -d
的情况下,cURL 默认发送 POST 请求,所以 -X POST
可以省略。默认的 Content Type 是 application/x-www-form-urlencoded
,如果需要发送 JSON 数据,可以使用 -H
或 --header
选项:
curl -d '{"key1":"value1"}' -H 'Content-Type: application/json' URL
可以使用 -I
或 --head
选项来仅显示响应头,这实际上是发送了一个 HEAD 请求(-X HEAD
):
curl -I URL
curl 中的跟随重定向
使用 -L
或 --location
选项可以让 cURL 自动跟随重定向,如果不开启这个选项,cURL 将只显示重定向这样一个响应:
curl -L URL
curl 中的代理
如果您已经配置了 http_proxy
等环境变量,cURL 会自动使用它们。如果需要手动指定代理,可以使用 -x
或 --proxy
选项:
curl -x http://proxy:port URL
典型示例解释
在 GitHub 上您可能经常会看到类似于下面格式的使用 curl
的安装命令:
curl -fsSL https://example.com/install.sh | sh
让我们来拆解一下它的含义:
-f
或--fail
选项表示如果请求失败,不输出错误信息;-s
或--silent
选项表示不输出进度信息;-S
或--show-error
选项表示显示错误信息;-L
或--location
选项表示跟随重定向。
最后,如果成功获取了数据,通过管道 |
将数据传递给 sh
命令执行。
httpie
curl
支持众多协议,而 httpie
则专注于 HTTP 协议,提供了更加人性化的命令行体验。
安装
使用 pipx
来安装 httpie
:
pipx install httpie
更多安装方式请见 httpie 官方文档。
基本用法
使用 http
命令发送 GET 请求:
http URL
使用 -v
或 --verbose
选项可以显示请求和响应的详细信息:
http -v URL
下载文件
使用 -d
或 --download
将响应保存到文件,文件名将自动猜测:
http -d URL
如果希望指定文件名,使用 --output
选项:
http --output FILENAME URL
当然,也可以通过重定向的方式。
指定请求方法
为了指定不同的请求方法,可以直接将方法名作为命令行参数:
http DELETE URL
修改请求头与请求体
使用 :
分隔的键值对来指定请求头,使用 =
分隔的键值对来指定 JSON 请求体,下面是一个来自官方文档中的例子:
http PUT pie.dev/put X-API-Token:123 name=John
认证
如果是要进行 Authorization
认证,可以组合使用 -a
或 --auth
、-A
或 --auth-type
选项。
如果只使用 -a
或 --auth
选项,表示使用 Basic 认证:
http -a username:password pie.dev/basic-auth/username/password
如果希望使用其他认证方式,可以使用 -A
或 --auth-type
选项:
https -A bearer -a token pie.dev/bearer
httpie 中的跟随重定向
使用 -F
或 --follow
选项可以让 httpie
跟随重定向:
http -F URL
httpie 中的代理
httpie
同样会读取环境变量以自动设置代理,如果需要手动指定代理,可以使用 --proxy
选项:
http --proxy=http:socks5://user:pass@host:port --proxy=https:socks5://user:pass@host:port example.org
更多信息
man curl
man http
- httpie 官方文档