Nietzsche's Preposterous Moustache
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    http-consolepublic

    http-console

    Speak HTTP like a local

    Talking to an HTTP server with curl can be fun, but most of the time it's a PITA.

    http-console is a simple and intuitive interface for speaking the HTTP protocol.

    PS: HTTP has never been this much fun.

    synopsis

    http-console

    installation

    http-console was written for node, so make sure you have that installed first. Then you need npm, node's package manager.

    Once you're all set, to install globally, run:

    $ npm install http-console -g
    

    It'll download the dependencies, and install the command-line tool in /usr/local/bin (you may need to make use of sudo or equivalent to gain access).

    Installing the bleeding edge

    The latest release will often be available on npm as http-console@latest, so you can run:

    $ npm install http-console@latest
    

    Alternatively, you can download a tarball of this repo, or clone it. Just make sure you have the latest version of node.

    introduction

    Let's assume we have a CouchDB instance running locally.

    connecting

    To connect, we run http-console, passing it the server host and port as such:

    $ http-console 127.0.0.1:5984 
    

    navigating

    Once connected, we should see the http prompt:

    http://127.0.0.1:5984/>
    

    server navigation is similar to directory navigation, except a little simpler:

    http://127.0.0.1:5984/> /logs
    http://127.0.0.1:5984/logs> /46
    http://127.0.0.1:5984/logs/46> ..
    http://127.0.0.1:5984/logs> ..
    http://127.0.0.1:5984/>
    

    requesting

    HTTP requests are issued with the HTTP verbs GET, PUT, POST, HEAD and DELETE, and a relative path:

    http://127.0.0.1:5984/> GET /
    HTTP/1.1 200 OK
    Date: Mon, 31 May 2010 04:43:39 GMT
    Content-Length: 41
    
    {
        couchdb: "Welcome",
        version: "0.11.0"
    }
    
    http://127.0.0.1:5984/> GET /bob
    HTTP/1.1 404 Not Found
    Date: Mon, 31 May 2010 04:45:32 GMT
    Content-Length: 44
    
    {
        error: "not_found",
        reason: "no_db_file"
    }
    

    When issuing POST and PUT commands, we have the opportunity to send data too:

    http://127.0.0.1:5984/> /rabbits
    http://127.0.0.1:5984/rabbits> POST
    ... {"name":"Roger"}
    
    HTTP/1.1 201 Created
    Location: http://127.0.0.1/rabbits/2fd9db055885e6982462a10e54003127
    Date: Mon, 31 May 2010 05:09:15 GMT
    Content-Length: 95
    
    {
        ok: true,
        id: "2fd9db055885e6982462a10e54003127",
        rev: "1-0c3db91854f26486d1c3922f1a651d86"
    }
    

    Make sure you have your Content-Type header set properly, if the API requires it. More in the section below.

    Note that if you're trying to POST to a form handler, you'll most probably want to send data in multipart/form-data format, such as name=roger&hair=black. http-console sends your POST/PUT data as is, so make sure you've got the format right, and the appropriate Content-Type header.

    setting headers

    Sometimes, it's useful to set HTTP headers:

    http://127.0.0.1:5984/> Accept: application/json
    http://127.0.0.1:5984/> X-Lodge: black
    

    These headers are sent with all requests in this session. To see all active headers, run the .headers command:

    http://127.0.0.1:5984/> .headers
    Accept: application/json
    X-Lodge: black
    

    Removing headers is just as easy:

    http://127.0.0.1:5984/> Accept:
    http://127.0.0.1:5984/> .headers
    X-Lodge: black
    

    Because JSON is such a common data format, http-console has a way to automatically set the Content-Type header to application/json. Just pass the --json option when starting http-console, or run the .json command:

    $ http-console 127.0.0.1:5984 --json
    http://127.0.0.1:5984/> .headers
    Accept: */*
    Content-Type: application/json
    

    cookies

    You can enable cookie tracking with the --cookies option flag. To see what cookies are stored, use the .cookies command.

    SSL

    To enable SSL, pass the --ssl flag, or specify the address with https.

    quitting

    http://127.0.0.1:5984/> .q
    

    nuff' said.

    install

    npm i http-console

    Downloadslast 7 days

    30

    version

    0.6.4

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar