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
    [email protected] \       # @   attach file
    [email protected] \    # [email protected]  read from file (text)
    user:[email protected]      # :[email protected] read from file (json)

Forms

$ http --form POST example.com \
    name="John Smith" \
    [email protected]

Options

Print 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

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