🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more.
Go to file
Adam Williamson fd30c4ef62
Explicitly load default certificates when creating SSL context (#1583) (#1596)
* Explicitly load default certificates when creating SSL context (#1583)

Requests prior to 2.32.3 always loaded the default (system-wide)
set of trusted certificates into custom SSL contexts. 2.32.3 no
longer does. This has broken a lot of users, but the fix is
moving slowly upstream due to security considerations - see
https://github.com/psf/requests/issues/6730 and
https://github.com/psf/requests/pull/6731 .

As suggested at
https://github.com/psf/requests/pull/6710#issuecomment-2137802782
this can be worked around by explicitly loading the default
certificates into the context. We check the method exists before
calling it just to be safe, it was added in Python 3.4.

Signed-off-by: Adam Williamson <awilliam@redhat.com>

* Drop the upper bound on the requests dependency again

As we can now work with requests 2.32.3+, we no longer need this
pin.

Signed-off-by: Adam Williamson <awilliam@redhat.com>

---------

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-11-01 09:37:11 -07:00
.github Ensure support for Python 3.11/3.12 (#1540) 2024-03-04 15:57:45 +01:00
docs Fix link to CurliPie tool (#1582) 2024-10-31 09:13:24 -07:00
extras Added an alias for HTTPS in fish completions (#1598) 2024-10-31 09:10:54 -07:00
httpie Explicitly load default certificates when creating SSL context (#1583) (#1596) 2024-11-01 09:37:11 -07:00
tests Migrate setup.py to setup.cfg (#1553) 2024-03-18 16:37:09 +01:00
.editorconfig Update links to HTTPS 2019-08-30 10:07:01 +02:00
.gitignore Single binary executables (#1330) 2022-04-14 08:11:12 -07:00
.packit.yaml Disable PackIt CI on the PRs (#1375) 2022-04-28 11:59:08 +03:00
AUTHORS.md Rename repo from httpie/httpie to httpie/cli 2023-08-06 14:04:32 +02:00
CHANGELOG.md Cleanup 2024-07-10 16:24:03 +02:00
CODE_OF_CONDUCT.md Add a workflow to check documentations (#1151) 2021-09-09 15:52:24 +02:00
CONTRIBUTING.md Rename repo from httpie/httpie to httpie/cli 2023-08-06 14:04:32 +02:00
LICENSE 2022 (#1259) 2022-01-26 17:45:03 +03:00
Makefile Migrate setup.py to setup.cfg (#1553) 2024-03-18 16:37:09 +01:00
MANIFEST.in Rename repo from httpie/httpie to httpie/cli 2023-08-06 14:04:32 +02:00
pytest.ini Mark stdin warning related tests with requires_external_processes (#1289) 2022-02-01 01:52:07 -08:00
README.md docs: Update the url for offline mode (#1556) 2024-03-04 15:35:32 +01:00
SECURITY.md Tweak 2022-03-07 23:29:48 +03:00
setup.cfg Explicitly load default certificates when creating SSL context (#1583) (#1596) 2024-11-01 09:37:11 -07:00
setup.py Migrate setup.py to setup.cfg (#1553) 2024-03-18 16:37:09 +01:00
snapcraft.yaml Rename repo from httpie/httpie to httpie/cli 2023-08-06 14:04:32 +02:00

HTTPie
HTTPie CLI: human-friendly HTTP client for the API era

HTTPie for Desktop Twitter Chat

Docs Latest version Build Coverage PyPi downloads

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. The http & https commands allow for creating and sending arbitrary HTTP requests. They use simple and natural syntax and provide formatted and colorized output.

HTTPie in action

We lost 54k GitHub stars

Please note we recently accidentally made this repo private for a moment, and GitHub deleted our community that took a decade to build. Read the full story here: https://httpie.io/blog/stardust

Getting started

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

See all features →

Examples

Hello World:

https httpie.io/hello

Custom HTTP method, HTTP headers and JSON data:

http PUT pie.dev/put X-API-Token:123 name=John

Build and print a request without sending it using offline mode:

http --offline pie.dev/post hello=offline

Use GitHub API to post a comment on an Issue with authentication:

http -a USERNAME POST https://api.github.com/repos/httpie/cli/issues/83/comments body='HTTPie is awesome! :heart:'

See more examples →

Community & support

Contributing

Have a look through existing Issues and Pull Requests that you could help with. If you'd like to request a feature or report a bug, please create a GitHub Issue using one of the templates provided.

See contribution guide →