工具使用要点60 条

HTTPie 接口快速验证

HTTPie 语法简洁适合接口验证:方法加 URL、字段即 JSON、头部照写;会话功能管理登录态,命令可直接写入报告复现步骤。

HTTPie 是什么

HTTPie 是面向人的命令行 HTTP 客户端,语法接近自然语言:方法加 URL,字段直接写成 key=value 即自动转为 JSON,请求头照写而不必拼引号。相比 curl,它默认彩色输出与格式化 JSON,适合在评估中快速验证接口行为,并把命令原样写进报告作为复现步骤。

基本信息

安装pip install httpie(或各系统包管理器)
基本语法http [METHOD] URL [ITEM ...]
字段写法key=value 字符串;key:=value 原始 JSON;key@file 从文件读取
请求头以冒号结尾形式写,如 'Authorization: Bearer xxx'
认证-a 用户名:口令(基本认证)
会话--session=名称 保存并复用 Cookie

典型使用场景

  • 接口连通性验证:确认未授权访问、方法限制与响应结构
  • 越权验证:用两个不同权限的会话对比同一接口的返回
  • 复现步骤留存:命令可直接粘贴进报告,客户能照着验证
  • 参数边界试探:快速替换字段值,观察校验与报错信息
  • 文件上传验证:用表单字段提交测试文件,确认上传限制

验证示例

验证示例
http GET https://app.example.com/api/items 'Authorization: Bearer test-token'
http POST https://app.example.com/api/login username=audit password=@pw.txt
http --session=audit GET https://app.example.com/api/me   # 复用登录态
http --session=audit PUT https://app.example.com/api/me role=admin  # 越权检查
http -f POST https://app.example.com/upload file@sample.pdf # 表单上传
http --print=hH GET https://app.example.com/api/items      # 只看头

常用选项速查

选项作用使用提示
--session=名字持久化 Cookie 与头部文件按凭据对待,用完清理
--print=hb只显示头与响应体报告截图更干净
--verify=no跳过证书校验仅用于自签证书测试环境
-v显示完整请求与响应写入报告时避免暴露令牌
--offline只构造请求不发送演示请求结构时使用
不要把口令直接写在命令行:它会留在 shell 历史、进程列表与屏幕录像里。可以用 @文件、环境变量或会话文件传递,并确保这些文件不进版本库。
HTTPie 与 curl 的取舍:批量脚本与需要精细控制底层连接时用 curl,人工验证与写报告复现步骤时 HTTPie 更省事。
写法细节:key=value 提交 JSON 字符串,key:=value 提交布尔或数字等原始类型,JSON 与表单不可混用,上传文件时加 -f 并写成 file@路径;版本上 3.x 后主命令为 http,旧版为 httpie,脚本里写清所用版本避免复现失败。

易错点

  • 口令出现在命令历史与屏幕录制中:凭据泄露;改用文件或环境变量注入并清理历史
  • 把测试令牌真实值粘贴进报告:令牌随后被泄露;报告中一律用占位符替换
  • 会话文件随项目目录一起交付:Cookie 外流;交付前清理 .httpie 会话文件
  • 用 --verify=no 测试生产接口:忽略证书校验会掩盖中间人风险;仅在测试环境临时使用

数据来源与参考

  • HTTPie 官方文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌