Question

Chaque fois que la recherche dans les bibliothèques d'API pour Python, il semble y avoir environ la moitié d'entre eux en utilisant simplement:

response = urllib2.urlopen('https://www.example.com/api', data)

et environ la moitié en utilisant:

connection = httplib.HTTPSConnection('www.example.com/api')
# ... rest omitted for simplicity

Je tends à penser la deuxième version est « plus froide » (je suis biaisé vers une approche plus orientée objet pour la plupart des choses).

Y at-il un avantage ou raison d'utiliser l'un sur l'autre. Ou, suis-je manque quelque chose le long du chemin. Je suppose que les utilisations de urllib2.urlopen HTTPSConnection dans sa mise en œuvre, alors peut-être l'un est tout simplement moins de codage en mon nom. Quelle que soit la façon, j'aimerais quelques commentaires. Merci.

Était-ce utile?

La solution

Oui, urllib2 utilise HTTPSConnection (ou tout autre type de connexion est appropriée pour le protocole) dans sa mise en œuvre. Il est fondamentalement juste un raccourci pour faire la chose que les gens les plus dénominateurs communs avec httplib.

urllib2 a aussi un code pour gérer les choses comme les redirections et les demandes d'authentification, toutes les choses que vous pourriez avoir à coder manuellement si vous le faisiez avec httplib ordinaire.

EDIT : En réponse au commentaire de Michael, si vous vous poseriez sur les données objet vs ... ce genre de dépend de ce que vous allez faire. Si vous avez besoin de l'objet de connexion (par exemple pour faire quelque chose de spécial avec lui, peut-être une connexion keepalive), alors que, aller de l'avant et utiliser la voie httplib et retourner l'objet de connexion. Mais si vous essayez juste d'obtenir les données, juste obtenir les données et le retourner. Si vous aimez POO, sachez que tout en Python est techniquement un objet; ce que vous obtenez de urllib2.urlopen est semblable à un fichier objet qui a des méthodes pour récupérer sa valeur en tant qu'objet de chaîne ou une liste de lignes (aussi objets à cordes). Je pense que la plupart des programmeurs Python envisageraient un gaspillage d'efforts à l'utilisation httplib dans ce dernier cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top