ech
v3.1.1
Published
Echo Entire HTTP Requests in JSON.
Downloads
52
Readme
ech
Echo Entire HTTP Requests in JSON.
So the top few Google searches for something to the effect of "http echo server" didn't return much. Or maybe I didn't look hard enough, whatever.
Anyway, I rolled my own. This is not HTTPBin, rather this echoes all parts of any and all requests made to the server (I could think of) including:
- URL
- HTTP Method
- Headers
- Querystring
- Request IP
- HTTP Body
The idea is to make literally any request, and get your response back verbatim (in JSON!).
Usage
Usage: ech [options]
Options:
-h, --help output usage information
-V, --version output the version number
-p, --port Specify port [default:8001]
-h, --host Specify host [default:'0.0.0.0']
Install
npm install -g ech
Examples
Example 1
$ curl 'http://user:pass@localhost:8001/p/a/t/h?query=string#hash' \
-u sk_test_PJHhXK0ewzsJUfzjDQvEBCLN: \
-d amount=400 \
-d currency=usd \
-d "description=Charge for [email protected]" \
-d "source[object]=card" \
-d "source[number]=4242424242424242" \
-d "source[exp_month]=12" \
-d "source[exp_year]=2016" \
-d "source[cvc]=123"
(Yes, that's from from Stripe's examples).
Result:
{
"fullUrl": "/p/a/t/h?query=string",
"url": "/p/a/t/h",
"fullQuery": "?query=string",
"query": {
"query": "string"
},
"ip": "127.0.0.1",
"method": "POST",
"headers": {
"authorization": "Basic c2tfdGVzdF9QSkhoWEswZXd6c0pVZnpqRFF2RUJDTE46cGFzcw==",
"user-agent": "curl/7.35.0",
"host": "localhost:8001",
"accept": "*/*",
"content-length": "174",
"content-type": "application/x-www-form-urlencoded"
},
"body": {
"amount": "400",
"currency": "usd",
"description": "Charge for [email protected]",
"source[object]": "card",
"source[number]": "4242424242424242",
"source[exp_month]": "12",
"source[exp_year]": "2016",
"source[cvc]": "123"
}
Example 2
$ curl localhost:8001
Result:
{
"fullUrl": "/",
"url": "/",
"fullQuery": "",
"query": {},
"ip": "127.0.0.1",
"method": "GET",
"headers": {
"user-agent": "curl/7.35.0",
"host": "localhost:8001",
"accept": "*/*"
},
"body": {}
}
Example 3
ech
can parse both "application/x-www-form-urlencoded" and "application/json"
form bodies, and does so for you automatically:
$ http :8001/users/new username=chrisdotcode [email protected] password=1234
{
"body": {
"email": "[email protected]",
"password": "1234",
"username": "chrisdotcode"
},
"fullQuery": "",
"fullUrl": "/users/new",
"headers": {
"accept": "application/json",
"accept-encoding": "gzip, deflate, compress",
"content-length": "78",
"content-type": "application/json; charset=utf-8",
"host": "localhost:8001",
"user-agent": "HTTPie/0.8.0"
},
"ip": "127.0.0.1",
"method": "POST",
"query": {},
"url": "/users/new"
}
You get the idea.