HTTPie is a command line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible. It provides a simple
http
command that allows for sending
arbitrary HTTP requests using a simple and natural syntax, and displays
colorized output. HTTPie can be used for testing, debugging, and
generally interacting with HTTP servers.HTTPie is written in Python, and under the hood it uses the excellent Requests and Pygments libraries.
- Main Features
- Installation
- Usage
- HTTP Method
- Request URL
- Request Items
- JSON
- Forms
- HTTP Headers
- Authentication
- Proxies
- HTTPS
- Output Options
- Redirected Input
- Terminal Output
- Redirected Output
- Download Mode
- Streamed Responses
- Sessions
- Config
- Scripting
- Interface Design
- Authors
- Logo
- Contribute
- Change Log
- Licence
Main Features
- Expressive and intuitive syntax
- Formatted and colorized terminal output
- Built-in JSON support
- Forms and file uploads
- HTTPS, proxies, and authentication
- Arbitrary request data
- Custom headers
- Persistent sessions
- Wget-like downloads
- Python 2.6, 2.7 and 3.x support
- Linux, Mac OS X and Windows support
- Plugins
- Documentation
- Test coverage
Installation
On Mac OS X, HTTPie can be installed via Homebrew:$ brew install httpie
# Debian-based distributions such as Ubuntu:
$ apt-get install httpie
# RPM-based distributions:
$ yum install httpie
# Make sure we have an up-to-date version of pip and setuptools:
$ pip install --upgrade pip setuptools
$ pip install --upgrade httpie
pip
installation fails for some reason, you can try
easy_install httpie
as a fallback.)Development version
The latest development version can be installed directly from GitHub:# Mac OS X via Homebrew
$ brew install httpie --HEAD
# Universal
$ pip install --upgrade https://github.com/jakubroztocil/httpie/tarball/master
Usage
Hello World:$ http httpie.org
$ http [flags] [METHOD] URL [ITEM [ITEM]]
http --help
.FROM https://github.com/jakubroztocil/httpie
-----------------------
HTTPie 采用 Python 开发,底层用到了 Requests 和 Pygments 库。
缺省支持json,比curl的语法更加简洁。
安装很容易:
pip install httpie
用法:
模拟提交表单
http -f POST example.org username=nate
显示详细的请求
http -v example.org
只显示Header
http -h example.org
只显示Body
http -b example.org
下载文件
http -d example.org
请求删除的方法
http DELETE example.org
传递JSON数据请求(默认就是JSON数据请求)
http PUT example.org ame=nate password=nate_password
如果JSON数据存在不是字符串则用:=分隔,例如
http PUT example.org 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 example.org name='nate'
模拟Form的上传, Content-Type: multipart/form-data
http -f POST example.com/jobs name='John Smith' file@~/test.pdf
修改请求头, 使用:分隔
http example.org User-Agent:Yhz/1.0 'Cookie:a=b;b=c' Referer:http://example.org
认证
http -a username:password example.org
http --auth-type=digest -a username:password example.org
使用http代理
http --proxy=http:http://192.168.1.100:8060 example.org
http --proxy=http:http://user:pass@192.168.1.100:8060 example.org
进阶用法:
看全部并跟随跳转
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