HTTPie: 开发者友好的http客户端工具

一、HTTPie 简介

HTTPie 是一个以开发者体验为核心的 命令行 HTTP 客户端工具,目标是替代 curl 等传统工具,简洁优雅地发送 HTTP 请求并读取响应,尤其适用于调试、测试和日常开发中的 RESTful API 操作。

项目主页:HTTPie – API testing client that flows with you
GitHub:https://github.com/httpie/httpie


二、核心特性

功能类别 HTTPie 特性说明
✅ 语法简洁 类似自然语言:如 http GET example.com
✅ 支持 JSON 自动加 header 和序列化/反序列化 JSON
✅ 输出美观 支持高亮输出和格式化,适合阅读
✅ 表单/上传 支持 multipart、文件上传
✅ 认证方便 支持 Basic、Bearer、Digest 等
✅ 支持 Session Cookie 自动保存和重用
✅ 跨平台工具 CLI + Web UI + API Explorer
✅ 插件系统 如 AWS 签名、OAuth 等插件可扩展使用
✅ Python 库 可集成到 Python 脚本中使用


三、基本命令对比示例

1. GET 请求

> http GET https://httpbin.org/get

等价于 curl:

> curl https://httpbin.org/get

2. POST JSON

> http POST https://httpbin.org/post name=jin age:=30

等价于 curl:

> curl -X POST https://httpbin.org/post \ -H "Content-Type: application/json" \ -d '{"name":"jin", "age":30}'

3. 添加 Header

> http GET https://api.example.com Authorization:"Bearer "

4. 上传文件

> http --form POST https://httpbin.org/post file@./a.txt


四、HTTPie 最佳实践

✅ 1. 常用参数

参数 含义
-v 显示请求和响应的详细内容(verbose)
--json 强制将数据编码为 JSON
--form 提交表单数据(application/x-www-form-urlencoded
--download 自动保存响应为文件
--session 支持 session 机制(自动保存 cookie)

✅ 2. API 开发调试场景

# 登录并保存会话

http --session=login POST https://example.com/api/login username=admin password=123456

# 使用 session 调用受保护接口

http --session=login GET https://example.com/api/user/profile

✅ 3. 与 jq 结合做响应处理

http GET https://httpbin.org/json | jq '.slideshow.slides[] | .title'

✅ 4. 编写 API 请求脚本(.http 文件)

内容示例(命名为 test.http):

GET https://httpbin.org/get POST https://httpbin.org/post Content-Type: application/json { "user": "mr.jin", "age": 35 }

运行:

httpie run test.http


⚔️ 五、与 curl、wget 对比

功能项 HTTPie curl wget
使用定位 REST API 调试 通用 HTTP 客户端 文件/站点下载
✅ 请求语法 自然语言式 标准命令行参数 简单 URI
✅ JSON 支持 自动处理 需手动加 headers 不支持
✅ 彩色输出 默认支持 需结合 jq 无输出格式
✅ 文件下载 支持 --download -O / -o 默认用途
✅ Cookie 管理 --session 自动处理 -b / -c 支持 cookie
✅ 文件上传 file@path -F 表单上传 不支持
✅ 插件机制 支持(OAuth/AWS) 无插件 无插件
✅ 认证支持 Basic, Bearer, OAuth 等 非常全面 较弱
✅ 文档友好性 ✅(文档清晰) ❌(命令复杂)
✅ 可脚本化 ❌(适合手工)
✅ 使用体验 高(面向开发者) 中(需习惯命令) 低(命令简单)


六、场景选型建议

使用场景 推荐工具 说明
快速调试 REST API ✅ HTTPie 易读、输出美观
自动化脚本 ✅ curl 稳定、兼容性好
文件/镜像站下载 ✅ wget 断点续传、递归
学习/教学演示 ✅ HTTPie 输出清晰,展示效果好
安全认证/签名集成 ✅ curl / HTTPie 插件 AWS、OAuth、Digest 支持良好


七、安装方法

使用 pip 安装(推荐)

pip install --upgrade httpie

使用 Homebrew 安装(macOS)

brew install httpie


八、总结

HTTPie = 更易读的 curl + 为现代 API 设计的交互体验,适合日常调试、API 开发和接口联调场景,是开发者最友好的 CLI HTTP 工具。

你可能感兴趣的:(http,网络协议,restful,开发工具)