← retour aux snippets

urllib.request: timeout et en-têtes sans dépendances

Construire une requête HTTP avec timeout et en-têtes custom (sans exécuter).

python http #urllib#http#timeout

objectif

Construire une requête HTTP avec timeout et en-têtes custom (sans exécuter).

code minimal

from urllib import request
req = request.Request("https://data.pm", headers={"User-Agent": "snip/1.0"})
opener = request.build_opener()
# On n'appelle pas opener.open(...) ici (pas de réseau)
print(isinstance(req, request.Request))  # attendu: True

utilisation

from urllib import request, parse
url = "https://api.data.pm/search?" + parse.urlencode({"q":"test"})
print(url.startswith("https://api.data.pm/search"))

variante(s) utile(s)

from urllib import request
req = request.Request("https://data.pm", method="HEAD")
print(req.method == "HEAD")

notes

  • Préférez requests pour un usage riche; urllib fonctionne sans dépendance.
  • Toujours définir un timeout lors d’un open(…, timeout=…).