HTTPie
是一个 HTTP 的命令行客户端。其目标是让 CLI 和 web 服务之间的交互尽可能的人性化。HTTPie 可用于与 HTTP 服务器做测试、调试和常规交互。
1 定制 HTTP 方法
除了默认的 GET 方法,还可以使用其他方法(比如 PUT,POST,HEAD)。例如,发送一个 HTTP PUT 请求:
http PUT 请求的url 参数名=参数值 参数名=参数值
2 提交表单
使用 http 命令提交表单
‘-f’ 选项使 http 命令序列化数据字段,并将 ‘Content-Type’ 设置为 “application/x-www-form-urlencoded; charset=utf-8”。
http -f POST
请求的url
参数名=参数值
3 JSON数据请求
HTTPie 内置 JSON(一种日渐普及的数据交换格式)支持。事实上,HTTPie 默认使用的内容类型(content-type)就是 JSON。因此,当不指定内容类型发送数据字段时,它们会自动序列化为 JSON 对象。
// 如果JSON参数不是字符串则用:=分隔,例如
http PUT请求的url
name=nate password=nate_password age:=28 a:=true streets:='["a", "b"]'
4 输出重定向
HTTPie 的另外一个用户友好特性是输入重定向,你可以使用缓冲数据提供 HTTP 请求内容。例如:
http POST api.serena.com/info/query < info.json
5 显示详细的请求
http -v
6 只显示Header
http -h
7 只显示Body
http -b
8 下载文件
http -d
9 请求删除的方法
http DELETE
10 模拟Form的Post请求上传文件
http -f POST serena.com/upload name=testfile file@~/testfile.txt
11 修改请求头
例如,我们发送一个 HTTP GET 请求到 www.test.com ,使用定制用户代理(user-agent)和来源(referer),还有定制头部(比如 MyParam)。
http 网站 User-Agent:用户代理 'Cookie:cookie' Referer:来源
12 认证
http -a username:password serena.com
http --auth-type=digest -a username:password serena.com
13 使用http代理
http --proxy=http:http://192.168.1.254:8080 serena.com
http --proxy=http:http://user:password@192.168.1.254:8080 serena.com