HTTPie (读aych-tee-tee-pie)是一个 HTTP 的命令行客户端。其目标是让 CLI 和 web 服务之间的交互尽可能的人性化。这个工具提供了简洁的 http 命令,允许通过自然的语法发送任意 HTTP 请求数据,展示色彩化的输出。HTTPie 可用于与 HTTP 服务器做测试、调试和常规交互。
1、主要特性:
- 直观的语法
- 格式化和色彩化的终端输出
- 内置 JSON 支持
- 支持上传表单和文件
- HTTPS、代理和认证
- 任意请求数据
- 自定义头部
- 持久性会话
- 类 Wget 下载
- 支持 Python 2.6, 2.7 和 3.x
- 支持 Linux, Mac OS X 和 Windows
- 插件
- 文档
- 测试覆盖率
2、环境搭建
首先需要安装python环境,Httpie是用Python写的。windows操作系统可以先安装Pypm,然后,打开Pypm,用命令再装HTTPie,除此之外还需要安装colorama。安装好这三个之后就可以使用
3、常用命令
模拟提交表单
http -f POST qincai.me username=nate
显示详细的请求
http -v qincai.me
只显示Header
http -h qincai.me
只显示Body
http -b qincai.me
下载文件
http -d qicai.me
请求删除的方法
http DELETE qincai.me
传递JSON数据请求(默认就是JSON数据请求)
http PUT qincai.me name=nate password=nate_password
如果JSON数据存在不是字符串则用:=分隔,例如
http PUT qincai.me name=nate password=nate_password age:=28 a:=true streets:='["a", "b"]'
模拟Form的Post请求, Content-Type: application/x-www-form-urlencoded; charset=utf-8
http --form POST qincai.me name='nate'
模拟Form的上传, Content-Type: multipart/form-data
http -f POST example.com/jobs name='John Smith' file@~/test.pdf
修改请求头, 使用:分隔
http yhz.me User-Agent:Yhz/1.0 'Cookie:a=b;b=c' Referer:http://yhz.me/
认证
http -a username:password qincai.me
http --auth-type=digest -a username:password qincai.me
使用http代理
http --proxy=http:http://192.168.1.100:8060 qincai.me
http --proxy=http:http://user:pass@192.168.1.100:8060 qincai.me