118 votes

Comment envoyez-vous une requête HTTP HEAD en Python?

Donc, ce que j'essaie de faire ici, c'est obtenir les en-têtes d'une URL donnée pour pouvoir déterminer le type MIME. Je veux pouvoir voir si http://somedomain/foo/ renverra un document html ou une image jpg par exemple. Je dois donc trouver comment envoyer une requête HEAD pour pouvoir lire le type MIME sans avoir à télécharger le contenu. Est-ce que quelqu'un connaît un moyen facile de le faire?

109voto

doshea Points 1095

urllib2 peut être utilisé pour effectuer une requête HEAD. C'est un peu mieux que d'utiliser httplib puisque urllib2 analyse l'URL pour vous au lieu de vous demander de diviser l'URL en nom d'hôte et chemin.

 >>> import urllib2
>>> class HeadRequest(urllib2.Request):
...     def get_method(self):
...         return "HEAD"
... 
>>> response = urllib2.urlopen(HeadRequest("http://google.com/index.html"))
 

Les en-têtes sont disponibles via response.info () comme précédemment. Fait intéressant, vous pouvez trouver l'URL vers laquelle vous avez été redirigé:

 >>> print response.geturl()
http://www.google.com.au/index.html
 

105voto

Eevee Points 18333

Edit: cette réponse fonctionne, mais aujourd'hui vous devez juste utiliser la bibliothèque de requêtes comme mentionné par d’autres réponses ci-dessous.


Utilisez httplib.

Il y a aussi un `` pour obtenir un en-tête spécifique.

75voto

Kay Zhu Points 9703

Obligatoire `` moyen :

36voto

Dalius Points 430

Selon moi, que la bibliothèque de requêtes doit être mentionnée ainsi.

17voto

Paweł Prażak Points 1054

Juste :

Edit : J’ai juste venu à réaliser il est httplib2 :D

texte du lien

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X