DEV Community

Cover image for HTTPie for Performance Engineers
NaveenKumar Namachivayam ⚡
NaveenKumar Namachivayam ⚡

Posted on • Originally published at

HTTPie for Performance Engineers

In this blog post we are going to learn HTTPie - a command line utility to debug web services. In our last post, we read about cURL for Performance Engineers. If you are looking for a cURL alternative, you can check out HTTPie.

What is HTTPie?

Here is the excerpt from

HTTPie (pronounced aitch-tee-tee-pie) is a command-line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible. HTTPie is designed for testing, debugging, and generally interacting with APIs & HTTP servers.

It supports both http and https; displays it in color by default.

How to install HTTPIe?

You can HTTPie on Linux, Windows and macOS. The only prerequisite is Python 3.6 or greater.

Head to to see the instructions based on your OS.

In this demonstration, we are going to utilize HTTPie on Windows Subsystem for Linux (WSL).

Issue any one of the below command to install HTTPie.

sudo apt install httpie


python -m pip install --upgrade pip setuptools
python -m pip install --upgrade httpie

After successful installation, you can validate by issuing http --version or https --version which will display the installed version of httpie.

HTTPie for Performance Engineers
HTTPie for Performance Engineers

Throughout this demo, we are going to use https variant.

HTTPie Features

  • Expressive and intuitive syntax
  • Formatted and colorized terminal output
  • Built-in JSON support
  • Forms and file uploads
  • HTTPS, proxies, and authentication.
  • Arbitrary request data
  • Custom headers
  • Persistent sessions
  • Wget-like downloads
  • Linux, macOS and Windows support
  • Plugins
  • Documentation
  • Test coverage


Hello World

Let us start with the simple GET method using the demo app. As you can see, by default, httpie will display the response and the headers in the colored format.


HTTPie - Hello World


https name=naveenkumar

Submit Form

https -f custname=naveenkumar&custtel=&custemail=&size=small&topping=mushroom&delivery=&comments=

View the sent request

https -v name=naveenkumar

Download File

https > myimage.png

Upload File

https POST < myimage.png

Follow Redirect

https --follow


https --proxy=http:http://localhost:3128 --proxy=https:https://localhost:1080

Skip HTTPS check

https --verify=no

SSL Version

https --ssl=ssl3

View Headers

https -h

View Body

https -b


http --stream

I have listed only the frequently commands which I use for debugging. Apart from these, HTTPie supports named sessions, wget-like downloads, piping, formatting, resuming downloads, conditional body download, SOCKS, and more.

Here is the GitHub repo for your reference:

HTTPie will be available for the web and desktop soon.


If you are looking to debug HTTP requests and for cURL alternative, then HTTPie is for you. Easy to learn and get started; comes with powerful features and format options.

Top comments (0)