### Introduction

HTTPie is a command-line HTTP client.

- HTTPie website (httpie.org)
- HTTPie documentation (httpie.org)
- Try it online (httpie.org)

### Parameters

    $ http POST http://example.com/posts/3 \
        Origin:example.com \  # :   HTTP headers
        name="John Doe" \     # =   string
        q=="search" \         # ==  URL parameters (?q=search)
        age:=29 \             # :=  for non-strings
        list:='[1,3,4]' \     # :=  json
        file@file.bin \       # @   attach file
        token=@token.txt \    # =@  read from file (text)
        user:=@user.json      # :=@ read from file (json)

### Forms

    $ http --form POST example.com \
        name="John Smith" \
        cv=@document.txt

### Raw JSON

    $ echo '{"hello": "world"}' | http POST example.com/post

### Options

#### Printing options

    -v, --verbose            # same as --print=HhBb --all
    -h, --headers            # same as --print=h
    -b, --body               # same as --print=b
        --all                # print intermediate requests
        --print=HhBb         # H: request headers
                             # B: request body
                             # h: response headers
                             # b: response body
        --pretty=none        # all | colors | format
        --json | -j          # Response is serialized as a JSON object.

#### Authentication

        --session NAME
    -a, --auth USER:PASS
        --auth-type basic
        --auth-type digest

#### Session

        --session NAME       # store auth and cookies
        --session-read-only NAME

#### Downloading

    -d, --download           # like wget
    -c, --continue
    -o, --output FILE

#### Others

    -F, --follow             # follow redirects
        --max-redirects N    # maximum for --follow
        --timeout SECONDS
        --verify no          # skip SSL verification
        --proxy http:http://foo.bar:3128

### References

- https://github.com/jakubroztocil/httpie

0 Comments for this cheatsheet. Write yours!