web-dev-qa-db-fra.com

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

Je suis donc récemment tombé sur cette superbe bibliothèque pour gérer les requêtes HTTP en Python; trouvé ici http://docs.python-requests.org/en/latest/index.html .

J'adore travailler avec cette application, mais je ne vois pas comment ajouter des en-têtes à mes demandes d'obtention. Aidez-moi?

111
Breedly

Selon 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"})
198
cwallenpoole

Cela semble assez simple, selon le docs sur la page que vous avez liée (souligné par moi).

requests.get (url, params = None, en-têtes = None, cookies = None, auth = None, délai d'attente = None)

Envoie une requête GET. Renvoie l'objet Response.

Paramètres:

  • url - URL du nouvel objet Request.
  • params - (facultatif) Dictionnaire des paramètres GET à envoyer avec le Request.
  • en-têtes - (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'attente de la demande.
31
John Flatness

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

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.

17
Cees Timmerman