http-console v1.0.0
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

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 -gIt'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@latestAlternatively, 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-dataformat, such asname=roger&hair=black. http-console sends your POST/PUT data as is, so make sure you've got the format right, and the appropriateContent-Typeheader.
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/jsoncookies
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/> .qnuff' said.
4 years ago
4 years ago
9 years ago
10 years ago
13 years ago
14 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago
15 years ago