|
Metadata-Version: 2.3 |
|
Name: httpx |
|
Version: 0.27.2 |
|
Summary: The next generation HTTP client. |
|
Project-URL: Changelog, https://github.com/encode/httpx/blob/master/CHANGELOG.md |
|
Project-URL: Documentation, https://www.python-httpx.org |
|
Project-URL: Homepage, https://github.com/encode/httpx |
|
Project-URL: Source, https://github.com/encode/httpx |
|
Author-email: Tom Christie <tom@tomchristie.com> |
|
License-Expression: BSD-3-Clause |
|
License-File: LICENSE.md |
|
Classifier: Development Status :: 4 - Beta |
|
Classifier: Environment :: Web Environment |
|
Classifier: Framework :: AsyncIO |
|
Classifier: Framework :: Trio |
|
Classifier: Intended Audience :: Developers |
|
Classifier: License :: OSI Approved :: BSD License |
|
Classifier: Operating System :: OS Independent |
|
Classifier: Programming Language :: Python :: 3 |
|
Classifier: Programming Language :: Python :: 3 :: Only |
|
Classifier: Programming Language :: Python :: 3.8 |
|
Classifier: Programming Language :: Python :: 3.9 |
|
Classifier: Programming Language :: Python :: 3.10 |
|
Classifier: Programming Language :: Python :: 3.11 |
|
Classifier: Programming Language :: Python :: 3.12 |
|
Classifier: Topic :: Internet :: WWW/HTTP |
|
Requires-Python: >=3.8 |
|
Requires-Dist: anyio |
|
Requires-Dist: certifi |
|
Requires-Dist: httpcore==1.* |
|
Requires-Dist: idna |
|
Requires-Dist: sniffio |
|
Provides-Extra: brotli |
|
Requires-Dist: brotli; (platform_python_implementation == 'CPython') and extra == 'brotli' |
|
Requires-Dist: brotlicffi; (platform_python_implementation != 'CPython') and extra == 'brotli' |
|
Provides-Extra: cli |
|
Requires-Dist: click==8.*; extra == 'cli' |
|
Requires-Dist: pygments==2.*; extra == 'cli' |
|
Requires-Dist: rich<14,>=10; extra == 'cli' |
|
Provides-Extra: http2 |
|
Requires-Dist: h2<5,>=3; extra == 'http2' |
|
Provides-Extra: socks |
|
Requires-Dist: socksio==1.*; extra == 'socks' |
|
Provides-Extra: zstd |
|
Requires-Dist: zstandard>=0.18.0; extra == 'zstd' |
|
Description-Content-Type: text/markdown |
|
|
|
<p align="center"> |
|
<a href="https://www.python-httpx.org/"><img width="350" height="208" src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/butterfly.png" alt='HTTPX'></a> |
|
</p> |
|
|
|
<p align="center"><strong>HTTPX</strong> <em>- A next-generation HTTP client for Python.</em></p> |
|
|
|
<p align="center"> |
|
<a href="https://github.com/encode/httpx/actions"> |
|
<img src="https://github.com/encode/httpx/workflows/Test%20Suite/badge.svg" alt="Test Suite"> |
|
</a> |
|
<a href="https://pypi.org/project/httpx/"> |
|
<img src="https://badge.fury.io/py/httpx.svg" alt="Package version"> |
|
</a> |
|
</p> |
|
|
|
HTTPX is a fully featured HTTP client library for Python 3. It includes **an integrated |
|
command line client**, has support for both **HTTP/1.1 and HTTP/2**, and provides both **sync |
|
and async APIs**. |
|
|
|
--- |
|
|
|
Install HTTPX using pip: |
|
|
|
```shell |
|
pip install httpx |
|
``` |
|
|
|
Now, let's get started: |
|
|
|
```pycon |
|
>>> import httpx |
|
>>> r = httpx.get('https://www.example.org/') |
|
>>> r |
|
<Response [200 OK]> |
|
>>> r.status_code |
|
200 |
|
>>> r.headers['content-type'] |
|
'text/html; charset=UTF-8' |
|
>>> r.text |
|
'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...' |
|
``` |
|
|
|
Or, using the command-line client. |
|
|
|
```shell |
|
pip install 'httpx[cli]' |
|
``` |
|
|
|
Which now allows us to use HTTPX directly from the command-line... |
|
|
|
<p align="center"> |
|
<img width="700" src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/httpx-help.png" alt='httpx --help'> |
|
</p> |
|
|
|
Sending a request... |
|
|
|
<p align="center"> |
|
<img width="700" src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/httpx-request.png" alt='httpx http://httpbin.org/json'> |
|
</p> |
|
|
|
|
|
|
|
HTTPX builds on the well-established usability of `requests`, and gives you: |
|
|
|
* A broadly [requests-compatible API](https://www.python-httpx.org/compatibility/). |
|
* An integrated command-line client. |
|
* HTTP/1.1 [and HTTP/2 support](https://www.python-httpx.org/http2/). |
|
* Standard synchronous interface, but with [async support if you need it](https://www.python-httpx.org/async/). |
|
* Ability to make requests directly to [WSGI applications](https://www.python-httpx.org/advanced/transports/ |
|
* Strict timeouts everywhere. |
|
* Fully type annotated. |
|
* 100% test coverage. |
|
|
|
Plus all the standard features of `requests`... |
|
|
|
* International Domains and URLs |
|
* Keep-Alive & Connection Pooling |
|
* Sessions with Cookie Persistence |
|
* Browser-style SSL Verification |
|
* Basic/Digest Authentication |
|
* Elegant Key/Value Cookies |
|
* Automatic Decompression |
|
* Automatic Content Decoding |
|
* Unicode Response Bodies |
|
* Multipart File Uploads |
|
* HTTP(S) Proxy Support |
|
* Connection Timeouts |
|
* Streaming Downloads |
|
* .netrc Support |
|
* Chunked Requests |
|
|
|
|
|
|
|
Install with pip: |
|
|
|
```shell |
|
pip install httpx |
|
``` |
|
|
|
Or, to include the optional HTTP/2 support, use: |
|
|
|
```shell |
|
pip install httpx[http2] |
|
``` |
|
|
|
HTTPX requires Python 3.8+. |
|
|
|
|
|
|
|
Project documentation is available at [https://www.python-httpx.org/](https://www.python-httpx.org/). |
|
|
|
For a run-through of all the basics, head over to the [QuickStart](https://www.python-httpx.org/quickstart/). |
|
|
|
For more advanced topics, see the [Advanced Usage](https://www.python-httpx.org/advanced/) section, the [async support](https://www.python-httpx.org/async/) section, or the [HTTP/2](https://www.python-httpx.org/http2/) section. |
|
|
|
The [Developer Interface](https://www.python-httpx.org/api/) provides a comprehensive API reference. |
|
|
|
To find out about tools that integrate with HTTPX, see [Third Party Packages](https://www.python-httpx.org/third_party_packages/). |
|
|
|
|
|
|
|
If you want to contribute with HTTPX check out the [Contributing Guide](https://www.python-httpx.org/contributing/) to learn how to start. |
|
|
|
|
|
|
|
The HTTPX project relies on these excellent libraries: |
|
|
|
* `httpcore` - The underlying transport implementation for `httpx`. |
|
* `h11` - HTTP/1.1 support. |
|
* `certifi` - SSL certificates. |
|
* `idna` - Internationalized domain name support. |
|
* `sniffio` - Async library autodetection. |
|
|
|
As well as these optional installs: |
|
|
|
* `h2` - HTTP/2 support. *(Optional, with `httpx[http2]`)* |
|
* `socksio` - SOCKS proxy support. *(Optional, with `httpx[socks]`)* |
|
* `rich` - Rich terminal support. *(Optional, with `httpx[cli]`)* |
|
* `click` - Command line client support. *(Optional, with `httpx[cli]`)* |
|
* `brotli` or `brotlicffi` - Decoding for "brotli" compressed responses. *(Optional, with `httpx[brotli]`)* |
|
* `zstandard` - Decoding for "zstd" compressed responses. *(Optional, with `httpx[zstd]`)* |
|
|
|
A huge amount of credit is due to `requests` for the API layout that |
|
much of this work follows, as well as to `urllib3` for plenty of design |
|
inspiration around the lower-level networking details. |
|
|
|
--- |
|
|
|
<p align="center"><i>HTTPX is <a href="https://github.com/encode/httpx/blob/master/LICENSE.md">BSD licensed</a> code.<br/>Designed & crafted with care.</i><br/>— π¦ —</p> |
|
|
|
|
|
|
|
|
|
|
|
* Reintroduced supposedly-private `URLTypes` shortcut. ( |
|
|
|
|
|
--- |
|
|
|
[Full changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md) |
|
|