Utilisation des en-têtes avec la méthode get de la bibliothèque de requêtes Python

Réponses:

282

Selon l' API , les en-têtes peuvent tous être passés en utilisant requests.get:

r=requests.get("http://www.example.com/", headers={"content-type":"text"})
cwallenpoole
la source
14
Vous pouvez vérifier l'en-tête de la requête http envoyé en faisant: print (r.request.headers)
nono
2
@Breedly Au bon endroit, au bon moment. Histoire de ma vie: une quantité remarquable de chance combinée à une tonne de travail acharné.
cwallenpoole
36

Cela semble assez simple, selon les documents sur la page que vous avez liée (c'est moi qui souligne).

request.get (url, params = None, headers = None, cookies = None, auth = None, timeout = None)

Envoie une requête GET. Renvoie l' Responseobjet.

Paramètres:

  • url - URL du nouvel Requestobjet.
  • params - (facultatif) Dictionnaire des paramètres GET à envoyer avec le Request.
  • headers - (facultatif) Dictionnaire des en-têtes HTTP à envoyer avec le Request.
  • cookies - (facultatif) Objet CookieJar à envoyer avec le Request.
  • auth - (facultatif) AuthObject pour activer l'authentification HTTP de base.
  • timeout - (facultatif) Float décrivant le délai d'expiration de la demande.
John Flatness
la source
3
Merci, mais je ne sais pas vraiment trop sur la syntaxe de Python. Juste une sorte d'apprentissage. La prochaine fois, prétendez que je ne sais rien et que j'ai lu l'API comme le mec ci-dessus.
Breedly
2
Il y a une faute de frappe dans le lien de documentation ou le lien est mort, voici le nouveau docs.python-requests.org/en/latest/api
Mutant
28

Cette réponse m'a appris que vous pouvez définir des en-têtes pour une session entière:

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

Bonus: les sessions gèrent également les cookies.

Cees Timmerman
la source