forked from extern/httpie-cli
114 lines
5.1 KiB
Markdown
114 lines
5.1 KiB
Markdown
## HTTPie: cURL for humans
|
|
|
|
[![Build Status](https://secure.travis-ci.org/jkbr/httpie.png)](http://travis-ci.org/jkbr/httpie)
|
|
|
|
|
|
HTTPie is a CLI frontend for [python-requests](http://python-requests.org) built out of frustration. It provides an `http` command that can be used to easily issue HTTP requests. It is meant to be used by humans to interact with HTTP-based APIs and web servers. The response headers are colorized and the body is syntax-highlighted if its `Content-Type` is known to [Pygments](http://pygments.org/) (unless the output is redirected).
|
|
|
|
![httpie](https://github.com/jkbr/httpie/raw/master/httpie.png)
|
|
|
|
### Installation
|
|
|
|
Latest stable version using [pip](http://www.pip-installer.org/en/latest/index.html):
|
|
|
|
pip install -U httpie
|
|
# easy_install httpie
|
|
|
|
Master:
|
|
|
|
pip install -U https://github.com/jkbr/httpie/tarball/master
|
|
|
|
|
|
### Usage
|
|
|
|
http [flags] METHOD URL [header:value | data-field-name=value]*
|
|
|
|
The default request `Content-Type` is `application/json` and data fields are automatically serialized as a JSON `Object`, so this:
|
|
|
|
http PATCH api.example.com/person/1 X-API-Token:123 name=John email=john@example.org
|
|
|
|
Will issue the following request:
|
|
|
|
PATCH /person/1 HTTP/1.1
|
|
User-Agent: HTTPie/0.1
|
|
X-API-Token: 123
|
|
Content-Type: application/json; charset=utf-8
|
|
|
|
{"name": "John", "email": "john@example.org"}
|
|
|
|
You can pass other types than just strings using the `field:=value` notation. It allows you to set arbitrary JSON to the data fields:
|
|
|
|
http PUT httpie.org/pies bool:=true list:=[1,2,3] 'object:={"a": "b", "c": "d"}'
|
|
|
|
Produces the following JSON request:
|
|
|
|
{"bool": true, "list": [1, 2, 3], "object": {"a": "b", "c": "d"}}
|
|
|
|
You can use the `--form` flag to set `Content-Type` and serialize the data as `application/x-www-form-urlencoded`.
|
|
|
|
The data to be sent can also be passed via `stdin`:
|
|
|
|
http PUT api.example.com/person/1 X-API-Token:123 < person.json
|
|
|
|
Most of the flags mirror the arguments you would use with `requests.request`. See `http -h`:
|
|
|
|
usage: http [-h] [--version] [--json | --form] [--traceback]
|
|
[--pretty | --ugly] [--headers | --body] [--style STYLE]
|
|
[--auth AUTH] [--verify VERIFY] [--proxy PROXY]
|
|
[--allow-redirects] [--file PATH] [--timeout TIMEOUT]
|
|
METHOD URL [items [items ...]]
|
|
|
|
HTTPie - cURL for humans.
|
|
|
|
positional arguments:
|
|
METHOD HTTP method to be used for the request (GET, POST,
|
|
PUT, DELETE, PATCH, ...).
|
|
URL Protocol defaults to http:// if the URL does not
|
|
include it.
|
|
items HTTP header (key:value), data field (key=value) or raw
|
|
JSON field (field:=value).
|
|
|
|
optional arguments:
|
|
-h, --help show this help message and exit
|
|
--version show program's version number and exit
|
|
--json, -j Serialize data items as a JSON object and set Content-
|
|
Type to application/json, if not specified.
|
|
--form, -f Serialize data items as form values and set Content-
|
|
Type to application/x-www-form-urlencoded, if not
|
|
specified.
|
|
--traceback Print exception traceback should one occur.
|
|
--pretty, -p If stdout is a terminal, the response is prettified by
|
|
default (colorized and indented if it is JSON). This
|
|
flag ensures prettifying even when stdout is
|
|
redirected.
|
|
--ugly, -u Do not prettify the response.
|
|
--headers, -t Print only the response headers.
|
|
--body, -b Print only the response body.
|
|
--style STYLE, -s STYLE
|
|
Output coloring style, one of autumn, borland, bw,
|
|
colorful, default, emacs, friendly, fruity, manni,
|
|
monokai, murphy, native, pastie, perldoc, solarized,
|
|
tango, trac, vim, vs. Defaults to solarized.
|
|
--auth AUTH, -a AUTH username:password
|
|
--verify VERIFY Set to "yes" to check the host's SSL certificate. You
|
|
can also pass the path to a CA_BUNDLE file for private
|
|
certs. You can also set the REQUESTS_CA_BUNDLE
|
|
environment variable.
|
|
--proxy PROXY String mapping protocol to the URL of the proxy (e.g.
|
|
http:foo.bar:3128).
|
|
--allow-redirects Set this flag if full redirects are allowed (e.g. re-
|
|
POST-ing of data at new ``Location``)
|
|
--file PATH File to multipart upload
|
|
--timeout TIMEOUT Float describes the timeout of the request (Use
|
|
socket.setdefaulttimeout() as fallback).
|
|
|
|
|
|
### Contributors
|
|
|
|
[View contributors on GitHub](https://github.com/jkbr/httpie/contributors).
|
|
|
|
|
|
### Changelog
|
|
|
|
* [0.1.6](https://github.com/jkbr/httpie/compare/0.1.4...0.1.6) (2012-03-04)
|