Appearance
HTTPie 终端工具教程
About 718 wordsAbout 2 min
2022-06-02
HTTPie 终端工具教程
HTTPie简介
HTTPie 是一款现代化的命令行HTTP客户端,专为与API交互设计,以简洁语法和高可读性输出著称。相比传统工具如curl,HTTPie通过自然语言式命令、自动JSON处理、彩色终端输出等功能大幅提升开发效率。
核心优势:
- 直观语法:命令接近自然语言(如http GET URL)。
- 内置JSON支持:自动序列化请求体为JSON,并格式化响应。
- 高亮输出:响应内容按状态码、JSON结构等分类着色。
- 跨平台兼容:支持Linux、macOS、Windows系统。
- 扩展功能:支持HTTPS、会话管理、文件上传、代理等。
安装HTTPie
1. 通用安装方式(Python环境)
通过Python包管理器pip安装:
pip install --upgrade httpie
验证安装:
http --version
2. 各系统专属安装 macOS(Homebrew):
brew install httpie
Ubuntu/Debian(APT):
sudo apt update && sudo apt install httpie
Windows(Chocolatey):
choco install httpie
其他安装方式(如二进制包)详见官网文档。
基础使用
1. 发送请求
GET请求(默认方法):
http https://jsonplaceholder.typicode.com/posts
带查询参数:使用==分隔键值对:
http GET https://api.example.com/search q==httpie limit==10
2. POST请求与JSON处理 简单JSON数据:
http POST https://api.example.com/users name=John age:=30
name=John:字符串类型(默认) age:=30:数值类型(需用:=)
嵌套JSON:
http POST api.example.com/profile hobbies:='["coding","music"]' address:='{"city":"Shanghai"}'
3. 请求头与认证
自定义Header:
http GET api.example.com/data "Authorization: Bearer YOUR_TOKEN"
```
基础认证:
```bash
http -a username:password api.example.com/secure
四、进阶功能
1. 文件操作
上传文件:
bash
http POST api.example.com/upload file@/path/to/file.txt
保存响应到文件:
bash
http GET api.example.com/image > image.png
2. 会话管理
通过--session参数保持Cookie或Token:
bash
http --session=my_session POST api.example.com/login username=admin
http --session=my_session GET api.example.com/profile
3. 输出控制
仅显示响应头:
bash
http --headers GET api.example.com
美化输出样式:
bash
http --style=monokai GET api.example.com/data
支持样式:autumn, solarized等(查看全部:http --style)。
4. 调试模式
使用--offline模拟请求不实际发送:
bash
http --offline POST api.example.com/test name=Debug
五、实际示例
场景1:测试REST API
bash
# 创建资源
http POST api.example.com/books title="HTTPie Guide" author:=Jane
# 更新资源
http PUT api.example.com/books/1 title="Updated Guide"
# 删除资源
http DELETE api.example.com/books/1
场景2:调试OAuth2接口
bash
# 获取Token
http --form POST auth.example.com/token grant_type=password username=user password=pass
# 使用Token访问
http GET api.example.com/data "Authorization: Bearer YOUR_TOKEN"
六、常见问题
如何隐藏敏感信息?
使用环境变量或会话管理。
如何处理非JSON响应?
添加--raw参数显示原始响应。
如何设置代理?
bash
http --proxy=http:http://proxy.example.com:8080 api.example.com
七、参考资料
官方文档:https://httpie.io/docs
社区插件:支持WebSocket、GraphQL等扩展。
通过本教程,您可快速掌握HTTPie的核心功能,更多高级用法可通过http --help或参考官方文档探索。