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}')
