HTTPie 采用 Python 开发,底层用到了 Requests 和 Pygments 库。

缺省支持json,比curl的语法更加简洁。

安装很容易:

pip install httpie  

用法:

模拟提交表单
http -f POST rendoumi.com username=nate

显示详细的请求
http -v rendoumi.com

只显示Header
http -h rendoumi.com

只显示Body
http -b rendoumi.com

下载文件
http -d rendoumi.com

请求删除的方法
http DELETE rendoumi.com

传递JSON数据请求(默认就是JSON数据请求)
http PUT rendoumi.com name=nate password=nate_password  
如果JSON数据存在不是字符串则用:=分隔,例如
http PUT rendoumi.com 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 rendoumi.com name='nate'  
模拟Form的上传, Content-Type: multipart/form-data
http -f POST example.com/jobs name='John Smith' file@~/test.pdf

修改请求头, 使用:分隔
http rendoumi.com  User-Agent:Yhz/1.0  'Cookie:a=b;b=c'  Referer:http://rendoumi.com/

认证
http -a username:password rendoumi.com  
http --auth-type=digest -a username:password rendoumi.com

使用http代理
http --proxy=http:http://192.168.1.100:8060 rendoumi.com  
http --proxy=http:http://user:pass@192.168.1.100:8060 rendoumi.com  

进阶用法:

看全部并跟随跳转
http --all --follow httpbin.org/redirect/3

下载2进制文件
http example.org/Movie.mov > Movie.mov

下载图片,然后用imagemagick转化,然后上传到另外一个网站
 http octodex.github.com/images/original.jpg | convert - -resize 25% -  | http example.org/Octocats

把认证信息放到session里
http --session=user1 -a user1:password example.org X-Foo:Bar

使用之前认证过后的session继续访问
http --session=user1 example.org  
comments powered by Disqus