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=…).