Skip to main content

Save time at the command line with HTTPie instead of curl

Automate testing endpoints, downloading files, and submitting forms with HTTPie.
Image
Pie math on a chalkboard
Image by Chuk Yong from Pixabay

Ah, 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.

Installation

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.

Try it!

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 --offline option!

Image
HTTPie with the --offline option

Looking for a wget-style file downloader? You got it!

http --download https://github.com/jakubroztocil/httpie/archive/master.tar.gz
Image
HTTPie with the --download option

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
Image
HTTPie escape ampersand

Wrap up

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. ]

What to read next

Topics:   Linux Administration   Automation  
Author’s photo

Jonathan Roemer

Jonathan Roemer is a Linux systems engineer with an interest in containerization, automation, and the human side of IT. He is currently an associate manager of containers and hybrid cloud at Datto, and can usually be found reading a book on his porch. More about me

Related Content

OUR BEST CONTENT, DELIVERED TO YOUR INBOX