We’re excited to introduce a new way of passing raw request data as an alternative to piping, XML pretty-printing, and improved packaging.
Raw request data
HTTPie has always used piping as the way to pass raw request data:
# Standard way to pass raw request body: $ echo 'Hello, World!' | http pie.dev/post
Piping, even though elegant, isn’t always practical, however. When generating API docs examples, invoking HTTPie from a programming language, or writing a complex command on the terminal, it may be easier to use a CLI option instead. That has been an often requested feature.
In this release, we’ve added a new option called
--raw, and HTTPie treats its value as if it came through
STDIN. The following command does the same as the one above:
# New in HTTPie 2.5.0: $ http --raw='Hello, World!' pie.dev/post
Pretty-printing of XML
JSON has been the lingua franca of the API world for a while, and HTTPie has always provided JSON formatting for terminal output. Many of our users work with XML as well, though, but XML bodies would be printed as they appear in the HTTP message, often on a single line:
<?xml version="1.0" encoding="utf-8"?><!-- comment --><root><element key='value'>text</element><element>text</element>tail<empty-element/></root>
This release brings formatting to XML (and XHTML) messages as well:
<?xml version="1.0" encoding="utf-8"?> <!-- comment --> <root> <element key="value">text</element> <element>text</element> tail <empty-element/> </root>
You can control the formatting behaviour using the following format options:
- Change the default 2-space indent size with
- Turn off XML formatting with
Packaging and distribution
Another theme for this release was improving HTTPie packaging and its availability for different platforms. The following channels have been (or are being) updated or newly added:
- macOS: Homebrew, and MacPorts
- Linux: Snap, Spack, Fedora, RedHat & CentOS via EPEL, Arch, Gentoo, Alpine, Manjaro, OpenSUSE, OpenPKG, and Solus
- Windows: Chocolatey
We want to give a big shout-out to Miro Hrončok, the maintainer of the HTTPie package in Fedora, who has been especially involved and was of great help. And, of course, we are infinitely thankful to all the other package maintainers working behind the scenes.
- Resuming downloads (
--continue) with a single byte to be downloaded left is now fixed (#1032).
- The behavior of
--verboserequests with a streamed body when the server returned
307 Temporary Redirectis now fixed (#1088).
- The handling of session files with
Cookie:followed by other headers has been fixed (#1126).
We’d like to thank these amazing people for their contributions to this release: Miro Hrončok, Jan Verbeek, Almad, nixbytes, Marcel Stör, Jannik Vieten, Ilya Sukhanov, henryhu712, Elena Lape, Anton Emelyanov, a1346054, bl-ue.