2010-12-06 17 views
4

Est-il possible de limiter la taille de la réponse avec httplib2? Par exemple, s'il voit un corps HTTP sur X octets, la connexion se ferme juste sans consommer plus de bande passante. Ou peut-être seulement télécharger les X premiers octets d'un fichier.Limiter la taille de la réponse avec httplib2

+1

La bibliothèque de requêtes peut effectuer ce travail facilement les demandes d'importation begin = requests.get ('http://example.com/') .iter_content (1024) .next() –

Répondre

5

En supposant que le serveur envoie la taille du corps de la réponse dans le champ d'en-tête de réponse Content-Length, vous pouvez le faire vous-même.

D'abord, appelez Http.request(method="HEAD") pour récupérer uniquement les en-têtes et non le corps. Puis, inspectez le champ Content-Length de la réponse pour voir si elle est inférieure à votre seuil. Si c'est le cas, faites une deuxième requête avec la méthode GET ou POST appropriée pour récupérer le corps; sinon produire une erreur.

Si le serveur ne vous donne pas la longueur du contenu (ou en ment), il ne semble pas qu'il existe un moyen de couper le téléchargement après un certain nombre d'octets.