HTTPie's goal is user-friendliness, so it comes with features like built-in JSON support, output formatting, syntax highlighting, extensions, etc. Comparison of the two in one screenshot can be seen in the README:
https://github.com/jakubroztocil/httpie#readme
(Disclaimer: I created HTTPie)
I tried a random rewrite of httpie in Go and it worked perfectly with those endpoints, as expected, and Go is getting full HTTP2 with 1.5 in June. Too bad the rewrite was still feature incomplete, when I tried it.
For older Python versions there are some additional dependencies to be installed manually (will happen automatically in next version of HTTPie):
https://github.com/jakubroztocil/httpie#sni-server-name-indi...
As for HTTP/2, there is an experimental extension for now:
http POST example.org name=jhon pass=12345
which results in .. POST / HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate, compress
Content-Length: 33
Content-Type: application/json; charset=utf-8
Host: example.com
User-Agent: HTTPie/0.8.0
{
"name": "jhon",
"pass": "12345"
}
..everything beautifully printed in nice colorsthanks for sharing!
I usually end up using HTTPie for manual work / ad-hoc checks. And then when I script it I tend to end up using curl, because curl is available everywhere and I never need to worry if it's installed everywhere I'll want to the script to run.