超好用的命令行调试接口工具 HTTPie
TOC
前言#
老实说,最开始我是个坚定的图形化界面的支持者。觉得命令行太过复杂而GUI界面更直观易用。
但是我之前的电脑只有8G内存,再加上我之前用的是Mac系统,它黄金般的内存价格让我不敢轻易升级内存。所以我只能选择命令行工具来节省内存占用。虽然现在没有内存焦虑了,但之前命令行的使用习惯还是保留了下来。
在http请求这一块,我选择了HTTPie这个工具,来替代Postman。它的功能非常强大,使用也很简单,完全可以满足我日常调试接口的需求。
这里上张截图比较下它和curl的区别:
![]()
它提供更加人性化的语法而友好的输出格式。你不需要再记住curl的各种参数,只需要简单的命令就可以完成请求。
安装#
各种包管理器直接安装即可。
xxx install httpie
或者通过pip安装:
# Install httpie
python -m pip install --upgrade pip wheel
python -m pip install httpie
使用#
只介绍一些我的常用功能,其他功能可以查看官方文档。
GET 请求#
http www.baidu.com
你也可以加上方法名, 我一般都会加上,这样更加直观:
http GET www.baidu.com
上面的是http协议,将前面的http换成https就是https协议了。
拼接url参数,用这种形式(key==value):
https GET www.xxx.com param1==value1 param2==value2
POST 请求#
https POST www.xxx.com
传参, JSON格式:
https POST www.xxx.com name=here-Leslie-Lau age:=18
默认就是json格式,HTTPie看请求参数里有数据时,就会自动把请求头Content-Type设置为application/json。
如果是json格式的请求数据,除了字符串用"=",其他类型都用":="。这里再举一个多数据类型的例子:
https POST www.xxx.com name=here-Leslie-Lau age:=18 isStudent:=false information:='{"school": "xxx University", "major": "Computer Science"}'
如果某个字段要用json或者数组格式,可以用单引号括起来。把它当成Raw JSON就行了。
当请求参数太复杂的话,可以将参数单独放到一个json文件里,然后通过重定向的方式传入:
https POST www.xxx.com < data.json
form表单形式,加个-f参数,它会把请求头Content-Type设置为application/x-www-form-urlencoded:
httpie -f POST www.xxx.com name=here-Leslie-Lau
通用用法#
加个-b参数,只显示响应体:
https GET www.baidu.com -b
-s参数,选择主题:
https GET www.baidu.com -s=one-dark
鉴权相关的可以这么用:
https GET xxx.com/api/abc -s=one-dark -b -A bearer -a ${PROJECT_TOKEN}
其中-A指定鉴权类型,-a指定token。我经常将PROJECT_TOKEN等敏感信息放到环境变量里。通过${}的形式传入。
还有很多高级用法没有列出来,各位可以下载下来自己http --help查看,或者参考官方文档。