Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cloudhead/http-console
simple, intuitive HTTP REPL — Speak HTTP like a local.
https://github.com/cloudhead/http-console
Last synced: 25 days ago
JSON representation
simple, intuitive HTTP REPL — Speak HTTP like a local.
- Host: GitHub
- URL: https://github.com/cloudhead/http-console
- Owner: cloudhead
- License: apache-2.0
- Created: 2010-05-30T17:15:36.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2021-06-07T20:39:31.000Z (over 3 years ago)
- Last Synced: 2024-04-25T02:03:01.708Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 62.5 KB
- Stars: 1,356
- Watchers: 28
- Forks: 65
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rest - Http-console - Command line interface for HTTP that let you *speak HTTP like a local* (Testing / Querying)
README
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](http://dl.dropbox.com/u/251849/http-console.png)
installation
------------*http-console* was written for [node](http://nodejs.org), so make sure you have that installed
first. Then you need [npm](http://github.com/isaacs/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](http://couchdb.apache.org) 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: blackThese 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: blackRemoving headers is just as easy:
http://127.0.0.1:5984/> Accept:
http://127.0.0.1:5984/> .headers
X-Lodge: blackBecause 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.