http-console

simple, intuitive HTTP REPL — Speak HTTP like a local.

  • Owner: cloudhead/http-console
  • Platform:
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

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 

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.

Main metrics

Overview
Name With Ownercloudhead/http-console
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
Platform
License:Apache License 2.0
所有者活动
Created At2010-05-30 17:15:36
Pushed At2021-06-07 20:39:31
Last Commit At2021-06-07 22:38:19
Release Count3
Last Release Namev0.2.0 (Posted on 2010-06-01 16:01:08)
First Release Namev0.1.0 (Posted on 2010-05-31 02:18:30)
用户参与
Stargazers Count1.4k
Watchers Count27
Fork Count65
Commits Count111
Has Issues Enabled
Issues Count37
Issue Open Count11
Pull Requests Count8
Pull Requests Open Count3
Pull Requests Close Count11
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private