Vue d'ensemble

HTTPX 0.20, publie le 28 aout 2021, ameliore le support HTTP/2 avec le multiplexage de requetes et affine l'API asynchrone.

Fonctionnalites principales

Multiplexage HTTP/2

Le multiplexage HTTP/2 permet d'envoyer plusieurs requetes simultanement sur une seule connexion TCP, reduisant la latence et ameliorant le debit pour les appels API multiples.

python
import httpx
import asyncio

async def requetes_paralleles():
    async with httpx.AsyncClient(http2=True) as client:
        # Multiplexage : requetes simultanees sur une connexion
        taches = [
            client.get('https://httpbin.org/get'),
            client.get('https://httpbin.org/headers'),
            client.get('https://httpbin.org/ip'),
        ]
        reponses = await asyncio.gather(*taches)
        for r in reponses:
            print(f'{r.url} -> {r.status_code} [{r.http_version}]')

# asyncio.run(requetes_paralleles())

API asynchrone amelioree

L'API async a ete affinee avec une meilleure gestion du cycle de vie des connexions, le support des timeouts granulaires et une integration simplifiee avec les frameworks ASGI.

python
import httpx

# Client synchrone avec timeouts granulaires
timeout = httpx.Timeout(
    connect=5.0,
    read=10.0,
    write=5.0,
    pool=2.0,
)

with httpx.Client(timeout=timeout) as client:
    r = client.get('https://httpbin.org/get')
    print(f'Statut : {r.status_code}')
    print(f'Version HTTP : {r.http_version}')

Sources