curl. While widely-loved and wildly powerful, its ergonomics leave something to be desired. Although it should not replace
curl in your automation, HTTPie provides a much more human-friendly interface for testing endpoints, downloading files, submitting forms, and a whole lot more.
Most Linux distributions provide HTTPie via your system package manager. It is available on macOS via Homebrew or MacPorts, and via pip for Windows and all platforms mentioned above. Check out the documentation here for a full list of options and use-case examples.
Below I've provided a few of my favorite features.
Want to test out that new endpoint configuration without repeatedly modifying your
/etc/hosts file? No problem! Just supply the Host: option to specify the hostname that should be passed as part of the request.
http localhost:8000 Host: example.com
Want to see what the request looks like before sending it? Tack on the
Looking for a
wget-style file downloader? You got it!
http --download https://github.com/jakubroztocil/httpie/archive/master.tar.gz
Gone are the days of escaping ampersands in your query string parameters and manually URL-escaping special characters.
http --offline https://api.github.com/search/repositories q==httpie+in:name per_page==1
I hope you find this helpful, and please share any other command-line tools that have changed your day-to-day tasks recently! A couple of other favorites of mine are ripgrep and choose.
[ Want to test your sysadmin skills? Take a skills assessment today. ]