HTTPie 完全指南比 curl 更人性化的 HTTP 调试工具如果你厌倦了 curl 的冗长语法HTTPie 是一个值得尝试的替代方案。一、HTTPie 是什么HTTPie发音aitch-tee-tee-pie是一个命令行 HTTP 客户端目标是让与 Web 服务的 CLI 交互尽可能人性化。它专为测试、调试和与 API / HTTP 服务器交互而设计相比 curl核心优势在于维度curlHTTPie语法直观性需要记忆大量 flag类似英语句子JSON 支持需手动处理自动序列化/美化输出格式原始文本彩色高亮 格式化会话管理需手动维护 cookie内置会话功能下载功能需组合多个参数类似 wget 一键下载当前版本3.2.4官网https://httpie.io/二、安装# macOSbrewinstallhttpie# Linux (Debian/Ubuntu)aptinstallhttpie# Windowschocoinstallhttpie# Python 环境通用python-mpipinstall--upgradehttpie安装完成后验证http--version# HTTPie 3.2.4三、基础语法http[选项][方法]URL[请求项...]最简形式自动根据数据选择 GET 或 POSThttp pie.dev/get http pie.dev/postnameJohn四、GET 请求4.1 最简单的 GEThttp GET https://httpbin.org/get或简写省略GEThttp https://httpbin.org/get4.2 带查询参数# 方法1URL 中直接带参数http https://httpbin.org/get?page1size10# 方法2HTTPie 原生语法推荐http GET https://httpbin.org/getpage1size10注意用于查询参数用于请求体字段。五、POST 请求5.1 发送 JSON 数据默认http POST https://httpbin.org/postname张三emailzhangsanexample.comHTTPie 自动设置Content-Type: application/json自动序列化 JSON5.2 强制指定数据类型# 表单application/x-www-form-urlencodedhttp--formPOST urlfieldvalue# multipart文件上传时自动使用http-fPOST url avatar~/photo.jpg5.3 混合使用不同类型http POST https://httpbin.org/post\name张三\age:29\active:true注意:用于发送非字符串类型数字、布尔值六、自定义请求头# 单个请求头http GET https://example.com/api User-Agent:MyBot/1.0# 多个请求头http GET https://example.com/api\Authorization:Bearer your_token_here\X-Request-ID:abc123\Accept:application/json七、认证7.1 Basic 认证http-ausername:password https://httpbin.org/basic-auth/user/pass7.2 Bearer Tokenhttp GET https://api.example.com/data\Authorization:Bearer your_jwt_token_here7.3 Digest 认证http --auth-typedigest-auser:pass https://example.com/protected八、输出控制选项说明适用场景-v, --verbose显示完整 HTTP 交换调试请求全貌-h, --headers仅显示响应头检查缓存、Cookie-b, --body仅显示响应体只关心数据-m, --meta仅显示元数据看耗时、大小--printHhBb自定义显示哪些部分精细控制8.1 仅看响应头http-hhttps://www.baidu.com8.2 完整调试模式http-vhttps://httpbin.org/get8.3 自定义输出格式# 只显示响应头和响应体http--printhB https://httpbin.org/get# 只显示元数据状态码、耗时、大小http--metahttps://httpbin.org/get九、会话管理HTTPie 的会话功能是其相比 curl 的一大优势可以自动维护 Cookie 和认证信息。9.1 创建会话# 创建名为 api 的会话首次需要认证http--sessionuser1--authuser:pass https://httpbin.org/get9.2 复用会话# 自动使用之前保存的认证和 Cookiehttp--sessionuser1 https://httpbin.org/get十、文件下载10.1 基本下载http--downloadhttps://example.com/file.zip10.2 指定文件名http--download-ooutput.zip https://example.com/file.zip十一、高级用法11.1 离线构建请求不发送# 只构建和查看请求不实际发送http--offlinePOST https://example.com/apinametest11.2 跟随重定向http--followhttps://short.url/abc11.3 跳过 SSL 证书验证http--verifyno https://self-signed.example.com11.4 超时设置http--timeout30https://slow-api.example.com11.5 检查状态码脚本用http --check-status https://httpbin.org/status/200成功时返回 04xx 返回 15xx 返回 2。十二、配置文件# 配置文件位置~/.config/httpie/config.json示例配置{default_options:[--stylefruity,--timeout10,--prettyformat]}十三、与 curl 对比速查操作curlHTTPieGET 请求curl https://urlhttp urlPOST JSONcurl -X POST -d {k:v} -H Content-Type: application/json urlhttp POST url kv设置请求头curl -H Header: value urlhttp url Header:valueBasic 认证curl -u user:pass urlhttp -a user:pass url查看响应头curl -I urlhttp -h url下载文件curl -o file urlhttp -d url查看完整交换curl -v urlhttp -v url跳过 SSL 验证curl -k urlhttp --verifyno url跟随重定向curl -L urlhttp -F url十四、常见错误排查问题原因解决方法提示无权限认证信息错误检查-a参数是否正确请求超时网络慢或服务响应慢增加--timeout值SSL 证书错误自签名证书使用--verifynostdin 卡住管道输入被等待加--ignore-stdin响应乱码编码问题加--headers确认 Content-Type总结HTTPie 是一个让 HTTP 调试变得简单的工具语法直观写出来就像说英语输出友好彩色高亮、格式化 JSON功能完整认证、会话、下载、代理全都支持适合场景API 开发调试、自动化脚本、快速探测接口*