HTTPie使用详解
概述
httpie是一个命令行形式的http客户端,它提供了简单的http命令,返回带代码高亮的结果信息,可以很方便的在http交互场景下进行测试、调试等。废话不多说,直接上干货。
安装httpie
- Windows
pip install --upgrade httpie
- Linux
apt-get install httpie
- macOS
brew install httpie
使用httpie
使用语法:
http [flags] [METHOD] URL [ITEM [ITEM]]
METHOD没有指定时,默认为 get
URL协议没有指定时,默认为 http://
- get请求
http httpbin.org/get name==Zarten zhihu_id==Zarten
等同于:
http get http://httpbin.org/get
若需要带参数时用 param==value 的形式
- post请求
post请求时表单用 = ,默认为post
http httpbin.org/post name=Zarten
- 传递json
格式跟上面差不多,若传递值不是字符串时,用 :=
若当进行post请求时,传递数据太多,我们可以直接传一个json类型文件,用 =@ 和 :=G
{
"name": "Zarten",
"age": 1,
"hobbies": [
"http",
"pies"
],
"description": "John is a nice guy who likes pies.",
"married": false,
"name": "John",
"bookmarks": {
"HTTPie": "http://httpie.org",
}
}
http httphin.org/post myinfo=Ee:\json.txt
也可直接重定向输入
http httpbin.org/post < e:\json.txt
- 提交表单
提交表单只需添加 -f 或 --form即可
http -f httpbin.org/post name=Zarten
- 设置请求头
从上图中可以看出,有些请求头是默认的,例如User-Agent为 "HTTPie/0.9.9"
通常我们需要修改请求头,只需设置形式如: header:value
http httpbin.org/get user-agent:flozi11a/5.B
若不需要某个头信息,只需形如 header: 即可
http httpbin.org/get user-agent:
若某个头信息设置成空值,形如 header; 即可
http httpbin.org/get user-agent;
- 重定向
默认不会自动重定向
http httpbin.org/redirect/1
若要跟随重定向,显示最终的响应结果,在前面加 --follow 或 -F
http -F httpbin.org/redirect/1
- 使用代理
通过参数 --proxy
--proxy=http:http://1.1.1.1:1000
---proxy=https:https://1.1.1.1:1000
basic授权为:
http --proxy=http:http://user:[email protected]:3128 example.org
- SSL证书验证
使用参数 --verify=no 来跳过SSL验证,默认是yes
http --uerify=no httpbin.org/get
- 输出参数选项
可以选择性的打印出响应头、响应体、或两者
响应头: --headers 或 -h
响应体: --body 或 -b
两者: --verbose 或 -v 默认输出是两者
http -h httpbin.org/get
- 重定向输出
有时,我们需要将输出到某个文件中,特别是响应的内容太多,导致不能翻页查看,这时我们可以重定向文件, 符号为 >
拿淘宝网举例:
http https://www.taobao.com > e:\taobao.txt
- 下载文件
使用参数 --download 或 -d 下载
使用参数 --output 或 -o 来指定输出地址
http -d -o e:\httpie https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.11-rc1.tgz