📢 本文将带你了解一款新的 HTTP 调试神器:Curlie。它结合了 curl 的强大功能和 httpie 的易用性,让你的 API 调试工作事半功工倍!
🤔 为什么需要 Curlie?
作为开发者,我们经常需要和各种 API 打交道。虽然有 Postman 这样的图形化工具,但在某些场景下(比如服务器维护、自动化脚本等),命令行工具往往更加高效。
传统的选择通常是:
curl:功能强大但命令较复杂 httpie:易用但可能缺少一些高级功能
而 Curlie 就像是这两者的"完美结合体",它:
保留了 curl 的所有强大功能 采用了 httpie 的简洁语法 还加入了很多现代化的改进
🚀 Curlie 的优势
1. 超级简单的安装
# macOS 用户
brew install curlie
# Go 用户
go install github.com/rs/curlie@latest
2. 优雅的命令语法
看看这些例子就知道有多简单了:
# GET 请求
curlie api.example.com/users
# POST JSON 数据
curlie post api.example.com/users \
name=张三 \
age:=25 \
active:=true
# 上传文件
curlie -F post api.example.com/upload \
file@./photo.jpg
3. 颜值即正义
Curlie 的输出颜值有多高?看图说话:
自动格式化 JSON 语法高亮显示 清晰的请求/响应分隔 友好的错误提示
4. 调试功能满分
# 查看详细请求信息
curlie -v api.example.com/users
# 只看响应头
curlie -I api.example.com/status
# 导出 curl 命令(方便分享)
curlie --curl api.example.com/data
💡 实用小技巧
技巧一:快速切换工具
# 在 .bashrc 或 .zshrc 中添加
alias curl="curlie"
技巧二:保存常用配置
# ~/.curlierc
--compressed
--max-time 30
技巧三:使用会话功能
# 保存登录会话
curlie --session=login post api.example.com/login \
username=admin password=123456
# 使用已保存的会话
curlie --session=login api.example.com/profile
🌰 实战案例
案例一:调试微信公众号 API
curlie post api.weixin.qq.com/cgi-bin/token \
grant_type=client_credential \
appid=YOUR_APPID \
secret=YOUR_SECRET
案例二:上传文件到阿里云 OSS
curlie -F put oss.aliyuncs.com/bucket/object \
file@./file.zip \
Authorization:"OSS ${ACCESS_KEY_ID}:${SIGNATURE}"
案例三:调试支付接口
curlie post api.example.com/pay \
order_id:=12345 \
amount:=99.99 \
currency=CNY \
Authorization:"Bearer ${TOKEN}"
🎯 最佳实践建议
合理使用详细模式
开发时使用 -v
查看完整请求详情生产环境脚本去掉详细输出
善用输出重定向
# 保存响应到文件
curlie api.example.com/data > response.json
设置超时保护
curlie --max-time 10 api.example.com/data
# 1. 请求头语法
# 使用冒号 : 表示请求头
curlie api.example.com \
Authorization:"Bearer token123" \
Content-Type:application/json \
Accept:application/json
# 2. 请求体语法
# 使用 = 表示字符串
# 使用 := 表示数字、布尔值、null 或 JSON
curlie post api.example.com \
name=John \ # 字符串
age:=25 \ # 数字
active:=true \ # 布尔值
data:=null \ # null
tags:='["a","b"]' # JSON 数组
# 3. 同时使用请求头和请求体
curlie post api.example.com \
Authorization:"Bearer token123" \ # 请求头
Content-Type:application/json \ # 请求头
name=Alice \ # 请求体
age:=30 # 请求体
# 4. 发送原始 JSON body
curlie post api.example.com \
Content-Type:application/json \
body='{"name": "John", "age": 25}'
# 5. 发送表单数据
curlie -F post api.example.com/upload \
Content-Type:'multipart/form-data' \ # 请求头
file@/path/to/file.jpg \ # 文件上传
name=John # 表单字段
# 6. 发送 URL 编码表单
curlie -form POST api.example.com \
Content-Type:'application/x-www-form-urlencoded' \
name=John \
age=25
# 7. 从文件读取请求体
curlie post api.example.com \
Content-Type:application/json \
@request.json
# 8. 复杂的请求头示例
curlie api.example.com \
Authorization:"Basic $(echo -n user:pass | base64)" \
X-Custom-Header:"custom value" \
Accept:'application/json, text/plain' \
User-Agent:'Curlie/1.6.9'
# 9. 请求体中的特殊字符
curlie post api.example.com \
message="Hello, World!" \ # 空格
path="/usr/local/bin" \ # 斜杠
query="name=John&age=25" \ # &符号
json:='{"key":"value"}' # JSON
# 10. 常见内容类型的完整示例
# JSON 请求
curlie post api.example.com/json \
Content-Type:application/json \
Accept:application/json \
name=John \
age:=25 \
hobbies:='["reading","gaming"]'
# XML 请求
curlie post api.example.com/xml \
Content-Type:application/xml \
Accept:application/xml \
body='<?xml version="1.0"?><user><name>John</name></user>'
# 文件上传
curlie -F post api.example.com/upload \
Content-Type:'multipart/form-data' \
file@document.pdf \
thumbnail@image.jpg \
description="My files"
📝 小结
Curlie 是一个非常优秀的 HTTP 客户端工具,它:
完美继承了 curl 的强大功能 拥有比 httpie 更好的兼容性 提供了更现代化的用户体验
无论你是在开发 API、调试接口,还是写自动化脚本,Curlie 都是一个值得尝试的工具。它不仅能提高你的工作效率,还能让你的调试过程变得更加愉悦。
🔗 相关链接
Curlie 官方仓库:github.com/rs/curlie curl 官网:curl.se httpie 官网:httpie.io
🎉 如果觉得这篇文章对你有帮助,欢迎点赞转发!
📮 有任何问题都可以在评论区留言交流!