View header and body with curl
I recently discovered the -i switch to curl! I have no idea why I didn’t know about this before…
Curl is one of those tools that every developer should know. It’s universal and tends to be available everywhere.
When developing APIs, I prefer to use curl to view the output of a request like this:
$ curl -v -H "Accept: application/json" https://api.joind.in/ * Trying 178.208.42.30... * Connected to api.joind.in (178.208.42.30) port 443 (#0) * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 * Server certificate: api.joind.in * Server certificate: Gandi Standard SSL CA 2 * Server certificate: USERTrust RSA Certification Authority * Server certificate: AddTrust External CA Root > GET / HTTP/1.1 > Host: api.joind.in > User-Agent: curl/7.43.0 > Accept: application/json > < HTTP/1.1 200 OK < Date: Sun, 15 May 2016 11:05:27 GMT < Server: Apache < X-Powered-By: PHP/5.6.4 < Access-Control-Allow-Origin: * < Content-Length: 363 < Content-Type: application/json; charset=utf8 < * Connection #0 to host api.joind.in left intact {"events":"https:\/\/api.joind.in\/v2.1\/events","hot-events":"https:\/\/api.joind.in\/v2.1\/events?filter=hot","upcoming-events":"https:\/\/api.joind.in\/v2.1\/events?filter=upcoming","past-events":"https:\/\/api.joind.in\/v2.1\/events?filter=past","open-cfps":"https:\/\/api.joind.in\/v2.1\/events?filter=cfp","docs":"http:\/\/joindin.github.io\/joindin-api\/"}
-v is for verbose and so you get told all the information you could possibly want. However, usually, I only want to know the response’s headers and body.
Enter the -i switch!
$ curl -i -H "Accept: application/json" https://api.joind.in/ HTTP/1.1 200 OK Date: Sun, 15 May 2016 11:10:24 GMT Server: Apache X-Powered-By: PHP/5.6.4 Access-Control-Allow-Origin: * Content-Length: 363 Content-Type: application/json; charset=utf8 {"events":"https:\/\/api.joind.in\/v2.1\/events","hot-events":"https:\/\/api.joind.in\/v2.1\/events?filter=hot","upcoming-events":"https:\/\/api.joind.in\/v2.1\/events?filter=upcoming","past-events":"https:\/\/api.joind.in\/v2.1\/events?filter=past","open-cfps":"https:\/\/api.joind.in\/v2.1\/events?filter=cfp","docs":"http:\/\/joindin.github.io\/joindin-api\/"}
Much better!
-i is for include and from the man page:
Include the HTTP-header in the output. The HTTP-header includes things like server-name, date ofthe document, HTTP-version and more…
This is exactly what I want without the information that I don’t!
hello have a look at this… syntax highlighting and all: https://github.com/jkbrzt/httpie
José, I'm aware of httpie, by my brain is wired for curl :)
I have been looking for this since a long time and actually if you check on stack overflow the "-v" option is the most common advice.
Thanks for sharing this gem! ;)
Thanks.!
How Can I avid below message in my script output.
Connection #0 to host api.joind.in left intact