屹今为止最好用的 HTTP 客户端命令行工具 - 接口调试神器 HTTPie
本文目录
Postman
一、思考❓❔
1.你用过哪些http客户端调试工具?

Postman
不够灵活
需要打开客户端, 麻烦
学习成本高
Jmeter
臃肿
麻烦
学习成本高
curl
参数多, 记不住
不够灵活
主要在Linux中使用
学习成本高
wget
主要用于命令行下载, 功能单一
参数多, 记不住
主要在Linux中使用
2.有没有哪种工具可以解决上述所有不足呢?

史上最好用的HTTP客户端命令行工具——HTTPie
基于命令行
超简洁、直观
支持JSON
支持语法高亮、格式化输出
支持wget下载
支持session会话
支持HTTPS
支持代理、认证
支持表单提交和文件上传
支持任意获取请求头、请求体、响应头或者响应体
支持Linux, macOS, and Windows平台
等等
二、安装??

1.Linux
Ubuntu或者Debian
sudo apt-get install httpieCentOS或者RHEL
sudo yum install httpie2.Windows
需要先安装python3
再安装httpie
# 更新pip到最新版本
pip install --upgrade pip setuptools
# 使用国内源安装httpie
pip install -i https://pypi.douban.com/simple --upgrade httpie8.macOS

使用Homebrew来安装
brew install httpie三、常用操作????
1.语法格式
http [flags] [METHOD] URL [ITEM [ITEM]]2.默认操作
# http url, 不带任何参数默认为GET请求
http http://localhost:8000/
# http url 参数名=参数值, 默认为POST请求
# 且以json格式来传递(Content-Type为application/json)
# 默认也接收json格式的数据(Accept为application/json, */*)
http http://localhost:8000/user/login/ username=lemon1 password=1234563.不同的参数类型
json
默认
form
query string
header
Item Type | 描述 |
|---|---|
| 请求头, 例如: |
| url查询字符串参数 |
| JSON(默认)或者-j |
| 传递json的 |
| 以form表单来上传文件 |
# 以json格式的字符串来传参(默认)
http POST http://localhost:8000/user/login/ username=lemon1 password=123456
# 以form表单来传参
http -f POST http://localhost:8000/user/login/ username=lemon1 password=123456
# 或者
http --form POST http://localhost:8000/user/login/ username=lemon1 password=123456
# 请求头中的Content-Type为application/x-www-form-urlencoded; charset=utf-8
# 以查询字符串参数形式来传参
http -v http://localhost:8000/user/login/ username==lemon1 password==123456
# 请求头中的请求首行为GET /user/login/?username=lemon1&password=123456 HTTP/1.1
# 传递请求头参数
http http://localhost:8000/user/login/ username=lemon1 password=123456 User-Agent:"Mozilla/5.0 KeYou"
# 查看请求头中的User-Agent参数为 User-Agent: Mozilla/5.0 KeYou4.获取请求和响应信息
获取响应头
-h
获取响应体
-b
获取请求头
-p H或者--print=H
获取请求体
-p B或者--print=B
# 获取响应头
http -h http://localhost:8000/user/login/ username=lemon1 password=123456
# 获取响应体
http -b http://localhost:8000/user/login/ username=lemon1 password=123456
# 获取响应头和响应体(默认)
http http://localhost:8000/user/login/ username=lemon1 password=123456
# 或者
http -p hb http://localhost:8000/user/login/ username=lemon1 password=123456
# 获取请求头
http -p H http://localhost:8000/user/login/ username=lemon1 password=123456
# 获取请求体
http -p B http://localhost:8000/user/login/ username=lemon1 password=123456
# 获取请求头和请求体
http -p BH http://localhost:8000/user/login/ username=lemon1 password=1234565.认证
登录用户名和密码
-a 或者 --authBasic auth类型的认证才行
同一session会话请求
# a.将会话文件保存在指定路径
# 注: Windows中的路径是以\进行分割的, linux中为/
http --session=~\s1.json -a lemon1:123456 -p Hh http://localhost:8000/api/login/
# 登录的session会话, 会保存在家目录下的s1.json文件中
# b.命名会话
http --session=s2 -a lemon1:123456 -p Hh http://localhost:8000/api/login/
# 会话命名为s2
# Windows系统中会话保存在%APPDATA%\httpie\sessions\<host>\<name>.json文件
# c. 后续直接使用同一会话去请求
http --session=~\s1.json http://localhost:8000/projects/ page==2 size==2
http --session=s2 http://localhost:8000/projects/ page==2 size==2JWT token认证
# 方法一:
# a. 先登录获取token
http http://localhost:8000/user/login/ username=lemon1 password=123456
# 响应体中有token值
http http://localhost:8000/projects/ page==2 size==2 Authorization:"JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxNiwidXNlcm5hbWUiOiJsZW1vbjEiLCJleHAiOjE1NzA3NTIyMzksImVtYWlsIjoia2V5b3UwQHFxLmNvbSJ9.p7az1upstXTf-IHHigiISymkz6-Q_O4DC3ouLXnLqLY"
# b. 可以将JWT设置为环境变量
# 可以使用Windows平台下的git bash来设置环境变量
export TOKEN1='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxNiwidXNlcm5hbWUiOiJsZW1vbjEiLCJleHAiOjE1NzA3NTIyMzksImVtYWlsIjoia2V5b3UwQHFxLmNvbSJ9.p7az1upstXTf-IHHigiISymkz6-Q_O4DC3ouLXnLqLY'
# c. 后续直接使用同一token去请求
http -p Hh http://localhost:8000/projects/ page==2 size==2 Authorization:"JWT ${TOKEN1}"
# 方法二:
# 可以通过安装httpie-jwt-auth插件来简单高效, 处理JWT认证
# a. 安装
pip install -i https://pypi.douban.com/simple httpie-jwt-auth
# b. 使用
http --auth-type=jwt --auth="你的token" 你的url地址
# 默认使用Bearer前缀, 也可以指定其他前缀
JWT_AUTH_PREFIX=JWT http --auth-type=jwt --auth="你的token" 你的url地址
# c. 最简单的方法为
# 设置环境变量, 简化token的传递
export JWT_AUTH_TOKEN='你的token'
export JWT_AUTH_PREFIX='JWT'
http --auth-type=jwt :8000/projects/ page==2 size==2
# --auth-type可以缩写为-A
http -A jwt :8000/projects/ page==2 size==26.下载
# 下载资源, 使用--download
# 类似于wget
http --download http://localhost:8000/projects/ page==2 size==2 Authorization:"JWT ${JWT1}"7.请求地址为localhost的简化
如果请求地址为localhost或者127.0.0.1本地地址, 可以省略ip
如果端口号为80, 那么端口号也可省略
# 省略ip, 默认的ip为localhost
http :8000
http :8000/projects/
# 省略ip和端口
# 默认访问的地址为 http://localhost/
http :
# 默认访问的地址为 http://localhost/projects/
http :/projects/三、总结??

本文重点介绍了HTTPie客户端命令行工具的安装和常用操作
内容较为完整, 且有案例演示
对于做前后端联调、接口测试人员有较强的实际意义
本文为可优原创, 如需转载请联系本人。有不足之处, 欢迎指点!

来源:testingpai