sigmavirus24 / httpcli

Simple command line HTTP client (compared to cURL).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

httpcli

Just another command line HTTP client (in the spirit of cURL).

Example Usage

HTTP verbs are specified as a positional argument, followed by the URL to be acted on. The goal is to reflect the feel of a standard HTTP header. For example:

$ http get http://localhost/

To provide a request body (e.g. for a POST or PUT), use the third positional argument:

$ http post http://localhost/documents '{"json": "document"}'

Arbitrary request headers can be specified as CLI args:

$ http get http://localhost/ --x-forwarded-for=10.0.0.50

This would be translated as X-Forwarded-For: 10.0.0.50 in the subsequent HTTP request. To illustrate this, we can enable verbose output:

$ http --verbose get http://localhost/ --x-forwarded-for=10.0.0.50

GET http://localhost/
=====================

X-Forwarded-For: 10.0.0.50

200 OK
======

Status: 200
Content-Length: 396
Content-Location: http://localhost/
Date: Wed, 30 May 2012 19:26:03 GMT
Content-Type: application/json

{
  "documents": [
    {
      "id": "c1be0fde3c0f4d27be15e1e3812cfd65b58325c3",
      "value": "a"
    },
    {
      "id": "67dc85dceacd3734ae53f1a69f56785dfe4c4c71",
      "value": "b"
    }
  ]
}

Built-In Help

Example help output:

$ http --help
usage: http [-h] [-v] method url [body] ...

Python HTTP CLI Client

positional arguments:
method         HTTP method to use (OPTIONS, GET, HEAD, POST, PUT, DELETE,
                TRACE, CONNECT)
url            URL to work with
body           Request body
headers        Additional request headers (keyword=value)

optional arguments:
-h, --help     show this help message and exit
-v, --verbose  show verbose output

About

Simple command line HTTP client (compared to cURL).


Languages

Language:Python 100.0%