超好用的命令行调试接口工具 HTTPie

前言

老实说,最开始我是个坚定的图形化界面的支持者。觉得命令行太过复杂而GUI界面更直观易用。

但是我之前的电脑只有8G内存,再加上我之前用的是Mac系统,它黄金般的内存价格让我不敢轻易升级内存。所以我只能选择命令行工具来节省内存占用。虽然现在没有内存焦虑了,但之前命令行的使用习惯还是保留了下来。

在http请求这一块,我选择了HTTPie这个工具,来替代Postman。它的功能非常强大,使用也很简单,完全可以满足我日常调试接口的需求。

这里上张截图比较下它和curl的区别:

screenshot1

它提供更加人性化的语法而友好的输出格式。你不需要再记住curl的各种参数,只需要简单的命令就可以完成请求。

安装

各种包管理器直接安装即可。

1
xxx install httpie

或者通过pip安装:

1
2
3
# Install httpie
python -m pip install --upgrade pip wheel
python -m pip install httpie

使用

只介绍一些我的常用功能,其他功能可以查看官方文档。

GET 请求

1
http www.baidu.com

你也可以加上方法名, 我一般都会加上,这样更加直观:

1
http GET www.baidu.com

上面的是http协议,将前面的http换成https就是https协议了。

拼接url参数,用这种形式(key==value):

1
https GET www.xxx.com param1==value1 param2==value2

POST 请求

1
https POST www.xxx.com

传参, JSON格式:

1
https POST www.xxx.com name=here-Leslie-Lau age:=18

默认就是json格式,HTTPie看请求参数里有数据时,就会自动把请求头Content-Type设置为application/json

如果是json格式的请求数据,除了字符串用"=",其他类型都用":="。这里再举一个多数据类型的例子:

1
https POST www.xxx.com name=here-Leslie-Lau age:=18 isStudent:=false information:='{"school": "xxx University", "major": "Computer Science"}'

如果某个字段要用json或者数组格式,可以用单引号括起来。把它当成Raw JSON就行了。

当请求参数太复杂的话,可以将参数单独放到一个json文件里,然后通过重定向的方式传入:

1
https POST www.xxx.com < data.json

form表单形式,加个-f参数,它会把请求头Content-Type设置为application/x-www-form-urlencoded:

1
httpie -f POST www.xxx.com name=here-Leslie-Lau

通用用法

加个-b参数,只显示响应体:

1
https GET www.baidu.com -b

-s参数,选择主题:

1
https GET www.baidu.com -s=one-dark

鉴权相关的可以这么用:

1
https GET xxx.com/api/abc -s=one-dark -b -A bearer -a ${PROJECT_TOKEN}

其中-A指定鉴权类型,-a指定token。我经常将PROJECT_TOKEN等敏感信息放到环境变量里。通过${}的形式传入。

还有很多高级用法没有列出来,各位可以下载下来自己http --help查看,或者参考官方文档

updatedupdated2025-08-282025-08-28