1. 概述
在这个教程中,我们将学习如何使用HTTPie命令行工具。
2. 什么是HTTPie?
HTTPie是一个专为与HTTP服务器和API交互而创建的命令行HTTP客户端。 此外,HTTPie还可用于测试和调试。
它还具备格式化、颜色化的输出、直观的语法以及内置的JSON支持。
3. 安装
首先,我们需要进行安装:
3.1. 在Linux上
我们可以通过Snapcraft在Linux上安装HTTPie:
$ sudo snap install httpie
3.2. 在Windows上
要在Windows上安装,可以使用Chocolatey:
$ choco install httpie
3.3. 在macOS上
最后,在macOS上安装,可以使用Homebrew:
$ brew update
$ brew install httpie
4. 使用方法
通常,我们应该按照以下模式调用HTTPie:
http [flags] [METHOD] URL [ITEM [ITEM]]
或:
https [flags] [METHOD] URL [ITEM [ITEM]]
5. 示例
让我们看几个例子:
5.1. 基本示例:Hello World
一个简单的GET请求的Hello World示例:
$ https httpie.io/hello
HTTP/1.1 200 OK
Age: 0
Cache-Control: public, max-age=0, must-revalidate
Connection: keep-alive
...
{
"ahoy": [
"Hello, World! 👋 Thank you for trying out HTTPie 🥳",
"We hope this will become a friendship."
...
}
我们得到响应头和体作为输出。
5.2. 自定义HTTP方法、头和体
我们还可以指定方法并添加自定义项到请求:
$ http PUT httpbin.org/put X-API-Token:123 name=John
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
...
Server: gunicorn/19.9.0
{
"args": {},
...
"headers": {
...
"X-Api-Token": "123"
},
"json": {
"name": "John"
},
...
}
这里的PUT
是方法,X-API-Token:123
是自定义HTTP头,name=john
是自定义数据项。
5.3. 提交表单数据
如果添加-f
标志,我们也可以提交表单数据:
$ http -f POST httpbin.org/post hello=world
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
...
Server: gunicorn/19.9.0
{
"args": {},
...
"form": {
"hello": "world"
},
...
}
可以看到,HTTP响应包含了我们指定的表单数据。
5.4. 输出请求和响应
要同时输出请求和响应,我们可以添加-v
(表示详细输出):
$ http -v httpbin.org/get
GET /get HTTP/1.1
Accept: */*
...
User-Agent: HTTPie/3.2.1
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
...
Server: gunicorn/19.9.0
{
"args": {},
"headers": {
"Accept": "*/*",
...
}
输出包含请求和响应。
5.5. 上传文件
我们还可以将文件作为请求数据传递:
$ http httpbin.org/post < hello.json
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
...
Server: gunicorn/19.9.0
{
"args": {},
"data": "{\"ahoy\":[\"Hello, World! 👋 Thank you for trying out HTTPie 🥳\",\"We hope this will become a friendship.
...
"json": {
"ahoy": [
"Hello, World! 👋 Thank you for trying out HTTPie 🥳",
"We hope this will become a friendship."
],
"links": {
...
}
},
...
}
5.6. 下载文件
我们可以下载文件并重定向输出:
$ http httpbin.org/image/png > image.png
此外,我们还可以像使用wget
(Linux下载目录子目录)一样下载文件:
$ http --download httpbin.org/image/png
HTTP/1.1 200 OK
...
Server: gunicorn/19.9.0
Downloading to png.png
Done. 8.1 kB in 00:0.06310 (128.2 kB/s)
6. 总结
在这篇文章中,我们了解了如何安装和使用HTTPie命令行工具。